Android开发之控件学习

到韩国来读研究生,由于是跨专业,所以自己必须付出更多的时间来弥补本科就是计算机软件专业的那些同学学过的知识,经过半年自己的各种编程语言的学习,从刚开始的java,到后来的python和Swift,感觉编程语言的整体思路都是一样的,所以学长说的对,拥有编程思维是学习编程语言最快的捷径;在放寒假的这段期间,除了每周都在研究教授布置下来的研究任务,还学习了Android的开发,由于拥有基础的java语言知识,Android上手还是比较顺利的,在这里对自己将近20天的学习做一个总结,知识点归纳,都是基础开发的知识,只希望记录自己的学习过程。

开发环境和工具:Android Studio

第一部分:控件
前期我对于Android开发的认识其实就是一个页面里面都是控件,各种布局,然后再在MainActivity里面写对应的逻辑代码,把每个控件都做活,先来记录下控件都有哪些:
1.Textview 显示文本框控件
常用属性:
android:id 控件的id
android:layout_width 控件宽度
android: layout_height 控件高度
android: text 控件文本内容
android:textSize 文本大小
android:textColor 颜色
android:background 空间背景
2.EditText 输入文本框
(同TextView拥有同样的属性)
独有属性:
android:hint 输入提示文本
android:inputType 输入文本类型android:wrap_content 包裹实际文本内同
android:match_parent 当前控件铺满父类容器—2.3API之后添加的
3.ImageView 显示图片的一个控件
android:src = “@drawable/ic_launcher”
ImageView的内容图像
android:background = “@drawable/ic_launcher”
ImageView背景图片
android:background = “#00ff00”
ImageView的RGB颜色
4.Button和ImageButton

< Button 
    android:id = “@+id/button1”
    android:layout_width= “match_parent”
android:layout_height= “wrap_content”
android:text= “Button”/>

< ImageButton 
    android:id = “@+id/imageButton1”
    android:layout_width= “match_parent”
android:layout_height= “wrap_content”
android:src= “@drawable/****”/>

这两个按钮共有的特征是都可以作为一个按钮产生点击事件,而不同之处在于Button有text属性,ImageButton没有;ImageButton有src属性,而Button没有
这里提到了监听事件,就来解释下两种按钮的监听事件:
1.Button和ImageButton都拥有一个onclick事件,通过自身的setOnClickListener方法添加点击事件;
2.所有的空间都有一个onClick的事件,比仅仅Button和ImageButton拥有;
3.通过点击事件的监听可以实现点击按钮之后要发生什么动作
监听事件实现的几种写法:
1. 匿名内部类的实现
2. 独立类的实现
3. 实现接口的方式实现

5.AutoCompleteTextView和MultiautoCompleteTextView
AutoCompleteTextView:动态匹配输入的内容,如百度搜索引擎
独特属性:
android:completionThreshold = “2”
设置输入多少字符时自动匹配
MultiautoCompleteTextView:可支持多选择(多个值),分别用分隔符分开,自动匹配,发短信,发邮件
6.ToggleButton:
有两种状态:选中和未选中状态,并且需要为不同的状态设置不同的显示文本
属性:android:checked= “true”
android:textOff= “关”
android:textOn= “开”
7.CheckBox 实现多选效果(复选框)
两种状态:选中状态(true),未选中状态(false)
属性:
android:id
android:layout_width
android:layout_height
android:checked = “false”
android:text
自定义checkBox的样式应该设置style属性
8.RadioGroup和RadioButton
RadioGroup:RadioButton的一个集合,提供多选机制
属性:
android:orientation=“vertical”垂直排布 “horizontal”水平排布
决定RadioGroup中的RadioButton以什么形式排布

下面就是练习这几个控件所写的代码:
学习资源感谢慕课网!

public class MainActivity extends AppCompatActivity {
    private Button loginButton;
    private Button bt1;
    private Button bt2;
    private AutoCompleteTextView acTextView;
    private String[] res = {"a","b","c",
            "d","e","f","g"};
    private ToggleButton tb;
    private ImageView img;
    private CheckBox checkBox;
    private RadioGroup rg;


    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //将布局xml文件引入到activity当中
        setContentView(R.layout.activity_main);
        /**
         *  1.初始化当前所需要的控件,如何初始化一个控件
         findViewById---返回的是一个View的对象
         findViewById是如何查找到对应的View的ID
         2.设置Button的监听器,通过监听器实现我们点击Button要操作的事情
         *
         */
        loginButton = (Button) findViewById(R.id.button);
        /**
         * 1.监听事件通过第一种方式实现---匿名内部类
         */
        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //在当前onClick方法中监听点击Button的动作
                System.out.println("我的Button被点击啦!");
            }
        });
        bt1 = (Button) findViewById(R.id.button2);
        bt2 = (Button) findViewById(R.id.button3);

        /**
         * 点击事件外部类的写法和作用
         */
        bt1.setOnClickListener(new MyOnClickListener(){
            @Override
            public void onClick(View v) {
                //调用父类的onClick
                super.onClick(v);
                Toast.makeText(MainActivity.this,"bt1要执行的逻辑",1).show();
            }
        });
        bt2.setOnClickListener(new MyOnClickListener(){
            @Override
            public void onClick(View v) {
                super.onClick(v);
                Toast.makeText(MainActivity.this,"bt2要执行的逻辑",1).show();
            }
        });
        /**
         * AutoCompleteTextview
         */
        //第一步:初始化
        acTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
        //第二部:需要一个适配器  第三步:初始化数据源---数据源去匹配文本框输入的内容
        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,res);
        //第四步:将adpater与当前AutoCompleteTextVie绑定
        acTextView.setAdapter(adapter);
        /**
         * ToggleButton的使用
         */
        tb = (ToggleButton) findViewById(R.id.toggleButton);
        img = (ImageView) findViewById(R.id.imageView);
        //给当天tb设置监听器
        tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                //当tb被点击的时候,当前的方法会执行
                //buttonView---代表被点击控件的本身  ischecked---代表被点击控件的状态
                //当点击这个tb的时候,更换img的背景
                img.setBackgroundResource(R.mipmap.ic_launcher);
            }
        });
        /**
         * CheckBox的使用
         */
        checkBox = (CheckBox) findViewById(R.id.checkBox2);
        //通过设置checkbox的监听事件来对checkbox是不是被选中
        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                //通过oncheckchanged来监听当前的checkbox是否被选中
                Log.i("tag",isChecked+"");
                if (isChecked){
                    //获得checkbox的文本内容
                    String text = checkBox.getText().toString();
                    Log.i("tag",text);
                }
            }
        });
        /**
         * RadioGroup的使用
         */
        rg = (RadioGroup) findViewById(R.id.radioGroup2);
        //实现RadioGroup的监听事件
        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId){
                    case R.id.radioButton3:
                        Log.i("tag","你当前是一个男孩");
                        break;
                    case R.id.radioButton4:
                        Log.i("tag","你当前是一个女孩");
                        break;
                }
            }
        });
    }
}
class MyOnClickListener implements View.OnClickListener{
    /**
     * 作用:让同一个界面里的所有button都实现同一个动作或者逻辑
     */

    @Override
    public void onClick(View v) {
        //Log.i("tag","父类的onclick事件");
        //让所有使用当前外部类的点击事件的按钮都要做出一个动作,改变button本身的透明度
        v.setAlpha(0.5f);
    }
}

Android开发之控件学习_第1张图片

你可能感兴趣的:(Android开发学习)