第二章 基本UI组件

1 文本框组件

1.1 TextView

示例:实现QQ聊天框




    

    

    

    

    

    

    

    

1.2 编辑框 EditText

第二章 基本UI组件_第1张图片

 几个重要属性:

  • hint:当用户没有输入的时候对用户的输入进行提示
  • inputType:限定用户输入的内容
  • drawStart、drawEnd、drawBottom、drawTop:可以在左侧、右侧、上面、下面绘制一个小图标
  • lines:控制行数,超过行数将向上滚动

示例:




    

    

    

1.3 普通按钮

第二章 基本UI组件_第2张图片

 按钮通常与监听器组合使用。

什么是监听器?

第二章 基本UI组件_第3张图片

 有两种方式添加事件监听器:

  • 匿名内部类方式
Button button = findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(MainActivity.this, "你点击了按钮", Toast.LENGTH_SHORT).show();
    }
});
  • 通过onClick属性实现
  1. 在Activity中编写一个包含View类型参数的方法。
  2. 将android:onClick指定为刚刚指定的方法名
public void myClick(View view) {
    Toast.makeText(MainActivity.this, "你点击了按钮2", Toast.LENGTH_SHORT).show();
}

1.4 图片按钮 

第二章 基本UI组件_第4张图片

 1.5 单选按钮

第二章 基本UI组件_第5张图片

两种方式获得单选的内容:

public class MainActivity extends AppCompatActivity {

    RadioGroup radioGroup;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //方式1
        radioGroup = findViewById(R.id.radioGroup);
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton radioButton = findViewById(checkedId);
                Toast.makeText(MainActivity.this, "性别:"+radioButton.getText(), Toast.LENGTH_SHORT).show();
            }
        });

        //方式2
        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                for(int i = 0; i < radioGroup.getChildCount(); i++) {
                    RadioButton radioButton = (RadioButton) radioGroup.getChildAt(i);
                    if(radioButton.isChecked()) {
                        Toast.makeText(MainActivity.this, "性别:"+radioButton.getText(), Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
    }
}

 1.6 复选框

第二章 基本UI组件_第6张图片

 与单选框不同的是,复选框可以选中多个。

btn_login = findViewById(R.id.btn_login);
checkBox1 = findViewById(R.id.checkbox1);
checkBox2 = findViewById(R.id.checkbox2);
checkBox3 = findViewById(R.id.checkbox3);

btn_login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String str = "";
            if(checkBox1.isChecked()) {
                str += checkBox1.getText().toString() + "\n";
            }
            if(checkBox2.isChecked()) {
                str += checkBox2.getText().toString() + "\n";
            }
            if(checkBox3.isChecked()) {
                str += checkBox3.getText().toString();
            }
            Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
        }
});

1.7 日期选择器

第二章 基本UI组件_第7张图片

 

DatePicker datePicker = findViewById(R.id.date_picker);
datePicker.setOnDateChangedListener(new DatePicker.OnDateChangedListener() {
        @Override
        public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                String str = year + "年" + monthOfYear + "月" + dayOfMonth + "日";
                Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
            }
});

1.8 时间选择器

DatePicker datePicker = findViewById(R.id.date_picker);
datePicker.setOnDateChangedListener(new DatePicker.OnDateChangedListener() {
       @Override
       public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                String str = year + "年" + monthOfYear + "月" + dayOfMonth + "日";
                Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
            }
});

1.9 计时器

第二章 基本UI组件_第8张图片

 第二章 基本UI组件_第9张图片

Chronometer chronometer = findViewById(R.id.chronometer);
chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.setFormat("%s");
chronometer.start();
chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
       @Override
       public void onChronometerTick(Chronometer chronometer) {
             if(SystemClock.elapsedRealtime() - chronometer.getBase() >= 60000) {
                chronometer.stop();
             }
        }
});

你可能感兴趣的:(android,ui,android,android,studio,1024程序员节)