Android基础控件介绍一

@android基本控件一

Android基础控件基本应用

这篇博客将介绍基本控件的基本用法和它的监听事件说明,基于约束布局

文本控件和按钮

文本控件包括很多类型,这里主要讲解文本框(TextView)和编辑框(EditText),同时说明按钮的基本监听。点击按钮这把编辑框的文本显示在文本框
首先我们看一下布局代码(xml代码)

 <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text_welcome"
        android:textColor="@color/text_welcome_color"
        android:textSize="@dimen/text_size"
        app:layout_constraintBottom_toTopOf="@+id/guideline5"
        app:layout_constraintEnd_toStartOf="@+id/guideline4"
        app:layout_constraintStart_toStartOf="@+id/guideline3"
        app:layout_constraintTop_toTopOf="@+id/guideline5" />


    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_go"
        app:layout_constraintBottom_toTopOf="@+id/guideline7"
        app:layout_constraintEnd_toStartOf="@+id/guideline4"
        app:layout_constraintStart_toStartOf="@+id/guideline3"
        app:layout_constraintTop_toTopOf="@+id/guideline7" />

    <EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:autofillHints=""
        android:ems="10"
        android:hint="@string/text_edit1"
        android:inputType="textPersonName"
        android:textSize="@dimen/text_edit"
        app:layout_constraintBottom_toTopOf="@+id/guideline6"
        app:layout_constraintEnd_toStartOf="@+id/guideline4"
        app:layout_constraintStart_toStartOf="@+id/guideline3"
        app:layout_constraintTop_toTopOf="@+id/guideline6" />              

这上面的xml代码其中Android:id代表的是控件的唯一标识;
android:layout_width和android:layout_height表示的是控件中设置文本所占的宽度渝高度;
android:text表示文本上显示的文本值;
android:textColor表示文本字体的颜色;
android:textSize表示文本字体的大小;
以上三个属性我们都要运用到资源文件(values)中的xml文件如:颜色资源文件(color.xml)在文件里面设值,虽然我们可以直接填入我们想要的颜色如#fff,但我们为了便于程序的开发,所以我们运用到了资源文件
其中xml app开头的代码是用来定义控件的位置。资源文件值放在最后。
Java代码

//首先申明控件的变量(在主Java文件中)
private TextView textMessage;
private EditText textEdit;
private Button button  
//然后在Oncreate中对应绑定控件
 textMessage = findViewById(R.id.textView2);
 textEdit = findViewById(R.id.editText);
 button = findViewById(R.id.button);
//按钮的单机监听事件
button.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("SetTextI18n")
            @Override
            public void onClick (View v) {
              textMessage.setText("我的爱好是"+textEdit.getText());
            }
        });

单选按钮(RadioButton)和复选框(checkbox)

单选框是一种双状态的按钮,可以选中和不选中。在单选按钮没有被选中时,用户可以来单机选着它。但是复选框不一样。
多个单选按钮要用RadioGroup同时使用,这样才能做出单选题那种感觉。而复选框不用,这里用一个实例来展现常用方法。点击选择按钮这把值反馈到上个例子的文本控件上。
xml代码

//单选
 <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toTopOf="@+id/guideline8"
        app:layout_constraintEnd_toStartOf="@+id/guideline9"
        app:layout_constraintStart_toStartOf="@+id/guideline3"
        app:layout_constraintTop_toTopOf="@+id/guideline8">

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/book" />

        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/game" />
    </RadioGroup>
//复选
 <CheckBox
        android:id="@+id/checkBox2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/game"
        app:layout_constraintBottom_toTopOf="@+id/guideline10"
        app:layout_constraintEnd_toStartOf="@+id/guideline4"
        app:layout_constraintHorizontal_bias="0.493"
        app:layout_constraintStart_toStartOf="@+id/guideline9"
        app:layout_constraintTop_toTopOf="@+id/guideline10"
        app:layout_constraintVertical_bias="0.531" />

    <CheckBox
        android:id="@+id/checkBox3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/book"
        app:layout_constraintBottom_toTopOf="@+id/guideline8"
        app:layout_constraintEnd_toStartOf="@+id/guideline4"
        app:layout_constraintHorizontal_bias="0.493"
        app:layout_constraintStart_toStartOf="@+id/guideline9"
        app:layout_constraintTop_toTopOf="@+id/guideline8"
        app:layout_constraintVertical_bias="0.312" />

Java代码实现

private RadioButton radioButton1;
private RadioButton radioButton2;
//单选按钮,复选按钮实例化
RadioGroup radioGroup = findViewById(R.id.radioGroup);
radioButton1 = findViewById(R.id.radioButton1);//游戏
radioButton2 = findViewById(R.id.radioButton2);//看书
//按钮选中事件
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @SuppressLint("SetTextI18n")
            @Override
            public void onCheckedChanged (RadioGroup group, int checkedId) {
                if(radioButton1.isChecked()){//这里条件可以用checkedId=1,代表编号
                    textMessage.setText("我的爱好是" + radioButton1.getText());
                }else if(radioButton2.isChecked()){
                    textMessage.setText("我的爱好是" + radioButton2.getText());
                }
            }
        });
private CheckBox    checkBox2;
private CheckBox    checkBox3;
checkBox2 = findViewById(R.id.checkBox2);
checkBox3 = findViewById(R.id.checkBox3);
//添加事件 
checkBox2.setOnCheckedChangeListener(cb);
checkBox3.setOnCheckedChangeListener(cb);
//复选款cb事件 这里是一个单独的方法
    private  CompoundButton.OnCheckedChangeListener cb = new CompoundButton.OnCheckedChangeListener() {
        @SuppressLint("SetTextI18n")
        @Override
        public void onCheckedChanged (CompoundButton buttonView, boolean isChecked) {
            String str1 = checkBox2.getText().toString();
            String str2 = checkBox3.getText().toString();//获取按钮文字
            if(checkBox2.isChecked() && checkBox3.isChecked()){
                textMessage.setText("我的爱好是" + str1 + "和" + str2);
            }else if(checkBox2.isChecked() && !checkBox3.isChecked()){
                textMessage.setText("我的爱好是" + str1);
            }else if (!checkBox2.isChecked() && checkBox3.isChecked()){
                textMessage.setText("我的爱好是" + str2);
            }else if(!checkBox2.isChecked() && !checkBox3.isChecked()){
                textMessage.setText("我的爱好是");
            }
        }
    };

下拉列表框(spinner)

Spinner 控件是一种列表类型控件,当用户选择,可以提供一个下拉列表项出来共用户选择。这里创建一个下拉列表并点击下拉列表把值显示到文本控件中
xml代码

<spinner
        android:id="@+id/spinner"
        android:layout_width="255dp"
        android:layout_height="25dp"
        app:layout_constraintBottom_toTopOf="@+id/guideline11"
        app:layout_constraintEnd_toStartOf="@+id/guideline4"
        app:layout_constraintHorizontal_bias="0.515"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/guideline11"
        app:layout_constraintVertical_bias="0.52" />``

Java代码

private  Spinner spinner;
private ArrayAdapter<String> adapter;
//下拉列表框
spinner = findViewById(R.id.spinner);
@SuppressLint("ResourceType") String[] sList = getResources().getStringArray(R.array.spinner_date);//选择资源文件的值
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,sList);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
@SuppressLint("SetTextI18n")
 @Override
public void onItemSelected (AdapterView<?> parent, View view, int position, long id) {
textMessage.setText("我的爱好是:" +  adapter.getItem(position) );
//这里明确position编号第一个是0
            }
@SuppressLint("SetTextI18n")
@Override
public void onNothingSelected (AdapterView<?> parent) {
textMessage.setText("noll");
}
});

自动提示控件(AutoCompleteTextView)

当我们搜索东西是,词条会给我们搜索的东西加以提示
控件的三个重要方法:

  1. clearListSelection():清除选中列表项
  2. dismissDropDown:如果存在则关闭下拉菜单
  3. getAdapter():获得适配器
    实现代码
<AutoCompleteTextView
        android:id="@+id/autoCompleteTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/auto_text"
        app:layout_constraintBottom_toTopOf="@+id/guideline12"
        app:layout_constraintEnd_toStartOf="@+id/guideline4"
        app:layout_constraintStart_toStartOf="@+id/guideline3"
        app:layout_constraintTop_toTopOf="@+id/guideline12"
        tools:ignore="LabelFor" />

 //自动提示输入框
       autoCompleteTextView = findViewById(R.id.autoCompleteTextView);
        String[] aList = getResources().getStringArray(R.array.spinner_date);
        ArrayAdapter<String> adapter1 = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line,aList);
        autoCompleteTextView.setAdapter(adapter1);

资源文件代码

//string
<resources>
    <string name="app_name">MyApplication</string>
    <string name="text_welcome">欢迎来到此界面</string>
    <string name="button_go">确定输入</string>
    <string name="text_edit1">请输入你的爱好</string>
    <string name="game">游戏</string>
    <string name="book">看书</string>
    <string name="spinner_title">选着你的爱好</string>
    <string name="auto_text">AutoCompleteTextView</string>
    <string-array name="spinner_date">
        <item>看书</item>
        <item>游戏 </item>
    </string-array>
</resources>

//dimens
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="text_size" >40sp</dimen>
    <dimen name="text_edit">30sp</dimen>
</resources>
//color
<resources>
<color name="colorPrimary">#6200EE</color>
<color name="colorPrimaryDark">#3700B3</color>
<color name="colorAccent">#03DAC5</color>
<color name="text_welcome_color">#FFF44336</color>
</resources>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值