Android Studio基础学习(2)——常见功能控件

此文章是根据b站视频学习整理的笔记2p,穿插一些延申的内容
原视频标题:手把手教你用Android Studio写一个APP,bv号:BV1MK411p7dp

Button跳转:

        *声明控件private Button mBtnLogin;//全局变量用m开头,局部变量用v开头

        *找到控件:在onCreate中,mBtnLogin = findViewById(R.id.tv_1); 

        *实现跳转

                1. 直接跳转:

                        在onCreate中,

                        mBtnLogin.setOnClickListener(new View.OnClickListener() {

                        public void onClick(View v) {     //定义onClick方法

                        ...

                        Intent intent = null;

                        intent = new Intent(MainActivity.this,functionActivity.class);//设定从a跳转到b

                        startActivity(intent);}}//实行跳转

                2. 成功匹配信息后跳转:声明和找到控件步骤基本同上,在这省略

                        首先定义onClick方法:

                        public void onClick(View v){  //获取输入的信息

                        //从控件中提取输入信息并存入字符串

                        String username = mEtUser.getText().toString();

                        String password = mEtPassword.getText().toString();

                        Intent intent = null;

                        //匹配

                        if(username.equals("2021")&&password.equals("0000")){

                                    intent = new Intent(MainActivity.this,functionActivity.class);

                                    startActivity(intent);

                        }else{ }

                        在onCreate中,

                        mBtnLogin.setOnClickListener(this);//监听控件

                【Q:关于setOnClickListener()】

                1)含义:为控件注册一个监听器,点击按钮时就会执行监听器中的 onClick()方法

                2)实现监听的方法:

                        *继承监听器接口:可直接使用this来调用onClick,

                        但类需要继承View.OnClickListener,调用的onClick需要public

                        *实现匿名内部类:这种方法适合想要实现一次性监听的情况,如上跳转1

toast显示:

        *底部弹出(普通版)

                String ok = "登陆成功";

                Toast.makeText(getApplicationContext(),ok,Toast.LENGTH_SHORT).show();

        *居中弹出(进阶版)

                String fail = "登陆失败";

                //设置toast

        Toast toastCenter = Toast.makeText(getApplicationContext(),fail,Toast.LENGTH_ SHORT);

                toastCenter.setGravity(Gravity.CENTER,0,0);   //调整toast布局为居中

                toastCenter.show();   //显示toast

        *封装类

                封装完成后可以直接引用

fragment组件:

        【Q:onCreate()和onCreateView()的区别】

        前者类似于Activity中的onCreate(),可以在其中初始化除了view外的东西;

        后者是创建该fragment对应的视图,必须在这里创建自己的视图并返回给调用者

侧滑界面:(此功能需要使用到SlidingMenu这个开源项目,它能很好地帮助实现侧滑功能)

        *导入SlidingMenu (导入第三方库过程:)

                (1) 导入源码:file->new->import module,然后找到目录导入

                (2) 依赖module:file->project structure->dependencies->app->dependency,添加上一步 导入的源码

        【Q:导入第三方项目通常会报错,因为使用的AS版本不一致,解决方法】

        修改自己app下build.gradle信息,将版本回退到稳定的30或29

*SlidingMenu使用

        【方法一:直接在activity中使用】

        在onCreate中,

        //创建左滑菜单
        SlidingMenu menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT);
        //设置触摸屏幕模式
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

        //设定菜单颜色

        menu.setBackgroundColor(Color.LTGRAY);

        //设置侧滑菜单布局(left_menu.xml为左侧菜单的布局文件

        menu.setMenu(R.layout.left_menu);

        //将滑动菜单添入当前activity

        menu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);

        //设置滑动菜单的偏移量

        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); 

        【Q:dimens尺寸配置文件使用报错,解决方法】

        由于Android Studio 2.3之后,创建项目时不会默认创建该配置文件,因此只有自己创建该文件 在value目录下,在其中存入自己所需参数,然后再调用

        例如:100dp

        【方法二:通过activity继承】

        在onCreate中,

        setBehindContentView(R.layout.left_menu);
        SlidingMenu menu = getSlidingMenu();

        menu.setMode(SlidingMenu.LEFT);

        其他设置基本与方法一相同

        【方法三:使用Fragment作为布局容器】

        前两种的控件都写在了Activity中,这样代码较为臃肿,因此常用Fragment作为布局容器

       【 Q:使用某些方法时,代码为什么会被划上中划线】

        这是集成环境的一种提示,提示此方法已经有新的方法代替,这是过期方法,不推荐使用

单选框RadioGroup&rRadioButton:

        *选项RadioButton组件需在RadioGroup布局中使用:

        
            ​​​​​​​ android:id="@+id/rg_1"
             android:orientation="vertical">

        
                android:id="@+id/rb_1"

                android:checked="true"  />> //此属性代表该选项为默认勾选

        *调用

        private RadioGroup radioGroup;

        radioGroup = findViewById(R.id.rg_1);

        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {  //监听选项
            @Override
                public void onCheckedChanged(RadioGroup group, int checkedId) {
                        RadioButton radioButton = findViewById(checkedId);    //寻找checkedButton
                       Toast.makeText(MainActivity.this,radioButton.getText(),Toast.LENGTH_SHORT).show();
    }})   ;//读取选中选项并弹窗提示

        【Q:在xml中注释:】

       【Q:报错If you are behind an HTTP proxy, please configure the proxy settings either in IDE or Gradle,解决:连接网络就好了,不知道为啥】

复选框CheckBox:和单选框类似,但复选只用设置选项不需要设置group

        *布局

        
            android:id="@+id/cb_1"
            android:text="选项1"/>

        *调用

        private CheckBox mCB1;

        mCB1 = findViewById(R.id.cb_1);

        mCB1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                 @Override
                 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        Toast.makeText(MainActivity.this,isChecked?"选中":"未选择",

                        Toast . LENGTH_SHORT ).show();   //单独设定选项1的弹框属性 }
});

你可能感兴趣的:(Android,Studio学习笔记,java,android,studio)