<少女> 2023-03-30 15:52 采纳率: 90.9%
浏览 10

我想知道创业myinfoview是干嘛的呀,干嘛要创建这个啊!详解必采纳!

我想知道创业myinfoview构造类是干嘛的呀,干嘛要创建这个啊!详解必采纳!这个构造类里面的详解一下,谢谢!

img

package com.example.boxuegu.view;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.example.boxuegu.R;
import com.example.boxuegu.activity.LoginActivity;
import com.example.boxuegu.utils.UtilsHelper;

public class MyInfoView implements View.OnClickListener{
    private LinearLayout ll_head;
    private ImageView iv_head_icon;
    private TextView tv_user_name;
    private RelativeLayout rl_course_history,rl_setting;
    private Activity mContext;
    private LayoutInflater mInfalter;
    private View mCurrentView;
    private boolean isLogin=false;//记录登录状态
    private MyInfoView myInfoView;
    public MyInfoView(Activity context){
        mContext=context;
        mInfalter=LayoutInflater.from(mContext);
    }
    @SuppressLint("InflateParams")
    private void  initView(){
        mCurrentView=mInfalter.inflate(R.layout.main_view_myinfo,null);
        ll_head=mCurrentView.findViewById(R.id.ll_head);
        iv_head_icon=mCurrentView.findViewById(R.id.iv_head_icon);
        rl_course_history=mCurrentView.findViewById(R.id.rl_course_history);
        rl_setting=mCurrentView.findViewById(R.id.rl_setting);
        tv_user_name=mCurrentView.findViewById(R.id.tv_user_name);
        mCurrentView.setVisibility(View.VISIBLE);
        setLoginParams(isLogin);
        ll_head.setOnClickListener(this);
        rl_course_history.setOnClickListener(this);
        rl_setting.setOnClickListener(this);
    }

    public void setLoginParams(boolean isLogin) {
        if(isLogin){
            tv_user_name.setText(UtilsHelper.readLoginUserName(mContext));
        }else {
            tv_user_name.setText("点击登录");
        }
    }

    @SuppressLint("NonConstantResourceId")
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.ll_head:
            if(UtilsHelper.readLoginStatus(mContext)){
                //跳转到个人资料界面
            }else {
                Intent intent=new Intent(mContext, LoginActivity.class);
                mContext.startActivityForResult(intent,1);
                break;
            }
            break;
            case R.id.rl_course_history:
                if(UtilsHelper.readLoginStatus(mContext)){
                    //跳转播放记录界面
                }else{
                    Toast.makeText(mContext,"您还未登录,请先登录",Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.rl_setting:
                if(UtilsHelper.readLoginStatus(mContext)){

                }else{
                    Toast.makeText(mContext,"您还未登录,请先登录",Toast.LENGTH_SHORT).show();
                }
                break;
        }
    }
    public View getView(){
        isLogin=UtilsHelper.readLoginStatus(mContext);
        if(mCurrentView==null){
            initView();
        }
        return mCurrentView;
    }
    public void showView(){
        if(mCurrentView==null){
            initView();
        }
        mCurrentView.setVisibility(View.VISIBLE);
    }

}


  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-03-31 01:47
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/197094
    • 你也可以参考下这篇文章:微信小程序模态框显示滑动内容,下层view同时滑动解决方案
    • 除此之外, 这篇博客: 21道Android高级面试题,面试官都被搞愣了中的 ,它是什么?他的继承方式是什么?他与View的区别(从源码角度,如加载,绘制等)。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      SurfaceView中采用了双缓冲机制,保证了UI界面的流畅性,同时SurfaceView不在主线程中绘制,而是另开辟一个线程去绘制,所以它不妨碍UI线程;

      SurfaceView继承于View,他和View主要有以下三点区别:

      • View底层没有双缓冲机制,SurfaceView有;
      • view主要适用于主动更新,而SurfaceView适用与被动的更新,如频繁的刷新
      • view会在主线程中去更新UI,而SurfaceView则在子线程中刷新;SurfaceView的内容不在应用窗口上,所以不能使用变换(平移、缩放、旋转等)。也难以放在ListView或者ScrollView中,不能使用UI控件的一些特性比如View.setAlpha()

      View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程内更新画面,速度较慢。

      SurfaceView:基于view视图进行拓展的视图类,更适合2D游戏的开发;是view的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比view快,Camera预览界面使用SurfaceView。

      GLSurfaceView:基于SurfaceView视图再次进行拓展的视图类,专用于3D游戏开发的视图;是SurfaceView的子类,openGL专用。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 3月30日

悬赏问题

  • ¥15 软件工程用例图的建立(相关搜索:软件工程用例图|画图)
  • ¥15 如何在arcgis中导出拓扑关系表
  • ¥15 处理数据集文本挖掘代码
  • ¥15 matlab2017
  • ¥15 在vxWorks下TCP/IP编程,总是connect()报错,连接服务器失败: errno = 0x41
  • ¥15 AnolisOs7.9如何安装 Qt_5.14.2的运行库
  • ¥20 求:怎么实现qt与pcie通信
  • ¥50 前后端数据顺序不一致问题,如何解决?(相关搜索:数据结构)
  • ¥15 基于蒙特卡罗法的中介效应点估计代码
  • ¥15 罗技G293和UE5.3