Android常见界面控件—Android知识点操作(常见界面控件详细解答)

 控件是界面组成的主要元素为了显示界面的输入框、图片、文字等信息,Android系统提供了一些控件来显示这些信息,每个控件都有对应的属性来设置不同的效果。我们以控件使用的复杂程度将Android中的控件分别简单控件和列表控件,简单控件包含以下几种,具体如下图所示。

 1.TextView控件

TextView控件用于显示文本信息,我们可以在XML布局文件中以添加属性的方式来控制TextView控件的样式 TextView控件的属性如下表所示。

 2.EditText控件

EditText表示编辑框,它是TextView的子类,用户可在此控件中输入信息。除了支持TextView控件的属性外,EditText还支持一些其它的常用属性,这些常用属性如下表所示。

3.Button控件

Button控件表示按钮,它继承TextView控件,既可以显示文本,又可以显示图片,同时也允许用户通过点击来执行操作,当Button控件被点击时,被按下与弹起的背景会有一个动态的切换效果,这个效果就是点击效果 。

Button控件设置点击事件的方式有三种,具体如下所示。

首先设置好按钮:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
   >
    <Button
        android:id="@+id/bt1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮1"
       android:layout_marginTop="20dp"
        android:onClick="click"/>
    <Button
        android:id="@+id/bt2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮2"
        android:layout_marginTop="20dp"/>
    <Button
        android:id="@+id/bt3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮3"
        android:layout_marginTop="20dp"/>

</LinearLayout>

1布局文件中指定onClick属性的方式设置点击事件

package com.example.chapterthreebutton;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
Button button1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1=findViewById(R.id.bt1);
    }
    public void click(View v){
        button1.setText("按钮1被点击");
    }
}

button1=findViewById(R.id.bt1);

给一个Button类型的变量赋值,赋的值为通过findViewById函数返回的值。这里的R.id.bt1表示你在Android界面菜单内拖出来的一个新的按钮,编译器会自动给这个按钮一个编号。findViewById函数就是通过这个编号准确定位这个按钮,执行你想要对它进行的操作。

2使用匿名内部类的方式设置点击事件

btn.setOnClickListener(new View.OnClickListener() {

     @Override

     public void onClick(View view) {

          //实现点击事件的代码

     }

});

package com.example.chapterthreebutton;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
//Button button1;
    Button button2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //button1=findViewById(R.id.bt1);
        button2=findViewById(R.id.bt2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                button2.setText("按钮2已被点击");
            }
        });
    }
//    public void click(View v){
//        button1.setText("按钮1被点击");
//    }
}

btn.setOnClickListener(this);,代表我们要给这个按钮设置一个监听器。什么是监听器呢?监听器就是负责监控按钮运行的工具。这个OnClickListener就是负责监听用户是否按下这个按钮的。

(3Activity实现OnClickListener接口的方式设置点击事件

public class Activity extends AppCompatActivity implements View.OnClickListener{

     @Override

     protected void onCreate(Bundle savedInstanceState) {

          ......

         btn.setOnClickListener(this); //设置Button控件的点击监听事件

     }

     @Override

     public void onClick(View view) {

          //实现点击事件的代码

     }

}

或者

有些需要注意的到

button3.setOnClickListener(this);this会报错,解决办法

选择下面的

package com.example.chapterthreebutton;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
   //Button button1;
   // Button button2;
    Button button3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //button1=findViewById(R.id.bt1);
      //  button2=findViewById(R.id.bt2);
//        button2.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                button2.setText("按钮2已被点击");
           // }
     //   });
        button3=findViewById(R.id.bt3);
        button3.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.bt3:
                button3.setText("按钮3被点击");
                break;
        }
    }
//    public void click(View v){
//        button1.setText("按钮1被点击");
//    }
}

注意:实现Button控件的点击事件的三种方式中,前两种方式适合界面上Button控件较少的情况,如果界面上Button控件较多时,建议使用第三种方式实现控件的点击事件。

4. ImageView控件

ImageView控件表示图片,它继承自View,可以加载各种图片资源ImageView控件的常用属性如下表所示。

在设置前景图片时:src 锁定纵横比不会失帧

5 .RadioButton控件

RadioButton表示单选按钮,它是Button的子类。每一个单选按钮都有“选中”和“未选中”两种状态,这两种状态是通过android:checked属性指定的。当可选值为true时,表示选中状态,否则,表示未选中状态

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
<RadioGroup
    android:id="@+id/rg"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <RadioButton
        android:id="@+id/rb1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="男"
        android:textSize="28dp"/>
    <RadioButton
        android:id="@+id/rb2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="女"
        android:textSize="28dp"/>
</RadioGroup>
    <TextView
        android:id="@+id/myview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30dp"/>
</LinearLayout>
package com.example.chapterthreeradiobutton;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView textView;
    RadioGroup radioGroup;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        radioGroup=findViewById(R.id.rg);
        textView=findViewById(R.id.myview);
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if(checkedId==R.id.rb1){
                    textView.setText("你的性别是:男");
                }else {
                    textView.setText("你的性别是:女");
                }
            }
        });
    }
}

6 .CheckBox控件

CheckBox表示复选框,它是Button的子类,用于实现多选功能。每一个复选框都有“选中”和“未选中”两种状态,这两种状态是通过android:checked属性指定的,当该属性的值为true时,表示选中状态,否则,表示未选中状态。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="请选择兴趣爱好:"
      android:textColor="#FF8000"
      android:textSize="28dp"/>
    <CheckBox
        android:id="@+id/cb1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="羽毛球"
        android:textSize="28dp"
        />
    <CheckBox
        android:id="@+id/cb2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="篮球"
        android:textSize="28dp"
        />
    <CheckBox
        android:id="@+id/cb3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="乒乓球"
        android:textSize="28dp"
    />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="你选择的兴趣爱好为:"
        android:textSize="28dp"
        android:textColor="#FF8000"/>
    <TextView
        android:id="@+id/hobby"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="28dp"
        android:textColor="#FF8000"/>
</LinearLayout>

package com.example.chapterthreecheckbox;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {
    TextView  hobby;
    String hobbys;
    CheckBox shuttlecock,basketball,pingpon;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        shuttlecock=findViewById(R.id.cb1);
        basketball=findViewById(R.id.cb2);
        pingpon=findViewById(R.id.cb3);
        shuttlecock.setOnCheckedChangeListener(this);
        basketball.setOnCheckedChangeListener(this);
        pingpon.setOnCheckedChangeListener(this);
        hobby=findViewById(R.id.hobby);
        hobbys=new String();
    }
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        String motion=buttonView.getText().toString();
        if(isChecked){
            if(!hobbys.contains(motion)){
                hobbys=hobbys+motion;
                hobby.setText(hobbys);
            }else {
                if(hobbys.contains(motion)){
                    hobbys=hobbys.replace(motion,"");
                    hobby.setText(hobbys);
                }
            }
        }
    }
}
 

7 .Toast

ToastAndroid系统提供的轻量级信息提醒机制,用于向用户提示即时消息,它显示在应用程序界面的最上层,显示一段时间后自动消失不会打断当前操作,也不获得焦点

使用Toast显示提示信息的示例代码如下:

Toast.makeText(Context,Text,Time).show();

关于makeText()方法中参数的相关介绍具体如下:

Context:表示应用程序环境的信息,即当前组件的上下文环境

Text:表示提示的字符串信息

Time:表示显示信息的时长,其属性值包括Toast.LENGTH_SHORTToast.LENGTH_LONG,分别表示显示较短时间和较长时间。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
 >
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="按钮"
        android:background="#fa0000"/>
</LinearLayout>
package com.example.chapterthreettoast;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=findViewById(R.id.btn);
        btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {

        if (v.getId()==R.id.btn)
            Toast.makeText(MainActivity.this,"按钮被点击",Toast.LENGTH_LONG).show();
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋240

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值