android基础 [超级详细android常用控件解析(Toast,点击事件处理,ImageButton,RadioButton,CheckBox)]

目录

1 章节目录

2 Toast

2.1 Toast的使用

3 点击事件处理

Android点击事件四种写法

3.1(不推荐)结合layout文件声明方法实现点击事件

事件写法(后面三种写法)的思路:

3.2 内部实现类完成点击事件

3.3 Activity实现OnClickListener

3.4 匿名内部实现类

4 ImageButton

4.1 ImageButton的基本使用

5 RadioButton

5.1 RadioButton的基本使用

5.2 点击事件

6 CheckBox

6.1 CheckBox的基本使用

6.2 点击事件


1 章节目录

  • Toast

  • 点击事件处理

  • ImageButton

  • RadioButton

  • CheckBox

2 Toast

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

2.1 Toast的使用

  • 使用Toast提示信息的实例代码:

Toast.makeText(Context,Text,Time),show();
  1. 这段代码首先调用了Toast的makeText方法用来设置提示信息,

  2. Context:表示应用程序环境的信息,就是当前组件的上下文环境,如果在Activity中使用的话,那么该参数可设置为"Activity.this",

  3. Text:表示你需要提示的信息,

  4. Time:表示提示信息的时长,其属性值有"LENGTH_SHORT 和 LENGTH_LONG",这两个值分别表示“短时间”,“长时间”,

  5. 然后调用了show方法来讲提示信息显示到界面中。

Toast.makeText(MainActivity.this,"WIFI已断开",Toast.LENGTH_SHORT).show();

3 点击事件处理

Android点击事件四种写法

  • (不推荐)结合layout文件声明方法

  • 内部实现类

  • Activity实现OnClickLitener

  • 匿名内部实现类

3.1(不推荐)结合layout文件声明方法实现点击事件

  • 先在LoginActivity.java中加入btnClick方法

public void btnClick(View view){
    //参数 Context, text, duration
    //上下文, 要提示的信息, 提示显示的时长
    Toast.makeText(LoginActivity,this, "提示:你点击了按钮",Toast.LENGTH.SHORT).show();
}
  • 然后在布局文件activity_login.xml中加入

<!--登录按钮-->
<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:background="@color/colorWhite"
    android:textSize="22sp"
    android:onClick="btnClick"
    android:text="登 录"/>

事件写法(后面三种写法)的思路:

  1. 根据控件的ID去获取控件

  2. 设置控件的事件(例如:点击事件)

  3. 在事件的方法中处理事件

3.2 内部实现类完成点击事件

控件缩写前缀
TextViewtv
EditTextetet
ImageViewiv
Button/RadioButton/ImageButtonbtn/rb/ib
RelativeLayout/LinearLayout/FrameLayoutrl/ll/fl
ListViewlv
WebViewwv
CheckBoxcb
ProgressBarpb
  • activity_login.xml中加上

<!--登录按钮-->
<Button
    android:id="@+id/btn_login_submit"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:background="@color/colorWhite"
    android:textSize="22sp"
    android:text="登 录"/>
  • 之后在LoginActivity这个类中实现一个ClickListener

Class ClickListener implements View.onClickListener{
    @Override
    public void onClick(View v){
        int id = v.getId();
        switch(id) {
            case R.id.btn_login_submit:
                Toast.makeText(LoginActivity.this,"提示:你点击了按钮,内部实现类",Toast.LENGTH.LONG).show();
                break;
        }
    }
}
  • 之后在LoginActivity的Oncreate中创建内部实现类的对象并设置点击事件

@Override
protected void onCreate(@Nullable Bundle savedInstanceState){
    super.OnCreate(savedInstanceState);
    //设置布局
    setContentView(R.layout.activity_login);
    //获取控件
    Button btnSubmit = findViewById(R.id.btn_login_submit);
    //②创建内部实现类
    ClickListener clickListener = new ClickListener();
    //②设置点击事件
    btnSubmit.setOnClickListener(clickListener);
}

3.3 Activity实现OnClickListener

public class LoginActivity extends AppCompatActivity implements View.OnClickListener{
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 设置布局
        setContentView(R.layout.activity_login);
        //获取控件
        Button btnSubmit = findViewById(R.id.btn_login_submit);
        //设置点击事件
        btnSubmit.setOnClickListener(this);
    }
    
    // 重载OnClickListener
    @Override
    public void onClick(View view){
        switch(view.getId()){
            case R.id.btn_login_submit:
                Toast.makeText(LoginActivity.this, 
                               "提示:你点击了按钮,Activity实现了OnClickLitener",Toast.LENGTH_LONG).show();
        }
    }
}

3.4 匿名内部实现类

public class LoginActivity extends AppCompatActivity{
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState){
        super.onCreate(savedInstanceState){
            
            //设置布局
            setContentView(R.layout.activity_login);
            
            //获取控件
            Button btnSubmit = findViewById(R.id.btn_login_submit);
            
            //匿名内部类实现的方式
            btnSubmit.setOnClickListener(new View.OnClickListener){
                @Override;
                public void onClick(View view){
                    Toast.makeText(LoginActivity.this, 
                                   "提示:你点击了按钮,匿名的内部实现类",Toast.LENGTH_LONG).show();
                }
            }
        }
    }
}

4 ImageButton

ImageButton显示了带有图像(而不是文本)的按钮,用户可以按下或单击该按钮。

4.1 ImageButton的基本使用

  • 属性:

属性说明
android:adjustViewBounds如果您希望ImageView调整其边界以保留其可绘制对象的纵横比,请将其设置为true。
android:baseline这是该视图内基线的偏移量。
android:baselineAlignBottom如果为true,则图像视图将根据其底边与基线对齐。
android:cropToPadding如果为true,则图像将被裁剪以适合其填充。
android:src这将可绘制对象设置为此ImageView的内容
android:background这是一个可绘制的背景。
android:contentDescription这定义了简短描述视图内容的文本。
android:id这提供了该视图的标识符名称。
android:onClick这是单击该视图时在该视图上下文中要调用的方法的名称。
android:visibility这控制了视图的初始可见性。
  • 案例:

 <ImageButton                       //使用ImageButton标签
     android:id="@+id/img_button"   // ImageButton的ID,和Button的ID一样
     android:layout_height="wrap_content" //ImageButton的宽和高属性,
     android:layout_width="wrap_content"
     android:src=@drawable/img_name > 
​
   //ImageButton上显示的图片,表示从图片资源文件中读取名字为img_name的图片

5 RadioButton

  • RadioButton 为单选框,存在多个选项情况下,需要将 RadioButton 放到 RadioGroup 组中使用,从而实现单选功能。

  • RadioGroup 中可以通过 orientation 来控制排列方式,水平还是垂直。

5.1 RadioButton的基本使用

  • RadioGroup 常用属性

    属性说明
    getChildCount()获取按钮组中单选按钮数量
    getChildAt()获取按钮组中指定索引的单选按钮
    check()设置单选按钮 ID 进行选中
  • RadioButton 常用属性

    属性说明
    isChecked()判断单选按钮是否选中
    setChecked()设置选中状态
  • 案例:

    <!-- RadioGroup -->
    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:checkedButton="@id/man">
        <!-- RadioButton -->
        <RadioButton
            android:id="@+id/man"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="男"
            android:textSize="16sp"/>
        <!-- RadioButton -->
        <RadioButton
            android:id="@+id/woman"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="女"
            android:textSize="16sp"/>
        <!-- RadioButton -->
        <RadioButton
            android:id="@+id/none"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="无"
            android:textSize="16sp"/>
    </RadioGroup>

5.2 点击事件

RadioGroup radgroup = (RadioGroup) findViewById(R.id.radioGroup);
    //第一种获得单选按钮值的方法 
    //为radioGroup设置一个监听器:setOnCheckedChanged() 
    radgroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
      @Override
      public void onCheckedChanged(RadioGroup group, int checkedId) {
        RadioButton radbtn = (RadioButton) findViewById(checkedId);
        Toast.makeText(getApplicationContext(), "按钮组值发生改变,你选了" + radbtn.getText(),      Toast.LENGTH_LONG).show();
     }
  });

6 CheckBox

  • Android CheckBox 是可以由用户切换的开/关开关。为用户提供一组互不排斥(多选)的可选选项时,应使用CheckBox。

6.1 CheckBox的基本使用

  • 属性:

    属性说明
    android:autoText如果设置,则指定此TextView具有文本输入法,并自动纠正一些常见的拼写错误。
    android:drawableBottom这是要在文本下方绘制的图形。
    android:drawableRight这是要在文本右侧绘制的图形。
    android:editable如果设置,则指定此TextView具有输入法。
    android:text这是要显示的文本
    android:background这是一个可绘制的背景。
    android:contentDescription这定义了简短描述视图内容的文本。
    android:id这提供了该视图的标识符名称。
    android:onClick这是单击该视图时在该视图上下文中要调用的方法的名称。
    android:visibility这控制了视图的初始可见性。
  • 案例:

    <CheckBox  
           android:id="@+id/checkbox1"  
           android:layout_width="wrap_content"  
           android:layout_height="wrap_content"  
           android:layout_above="@+id/button1"  
           android:layout_alignLeft="@+id/linearLayout1"   
           android:text="牛仔" />
      

6.2 点击事件

  • xml代码

    <CheckBox  
            android:id="@+id/cb_one"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_above="@+id/button1"  
            android:layout_alignLeft="@+id/linearLayout1"   
            android:text="牛仔"/>  
      
    <CheckBox  
            android:id="@+id/cb_two"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_alignBaseline="@+id/checkbox3"  
            android:layout_alignBottom="@+id/checkbox3"  
            android:layout_marginLeft="27dp"  
            android:layout_toRightOf="@+id/checkbox3"  
            android:text="面包" />  
    ​
    <CheckBox  
            android:id="@+id/cb_three"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_alignBaseline="@+id/checkbox1"  
            android:layout_alignBottom="@+id/checkbox1"  
            android:layout_toRightOf="@+id/button1"  
            android:text="黄油" /> 

  • java代码

    public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{
      private CheckBox cb_one;
      private CheckBox cb_two;
      private CheckBox cb_three;
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        cb_one = (CheckBox) findViewById(R.id.cb_one);
        cb_two = (CheckBox) findViewById(R.id.cb_two);
        cb_three = (CheckBox) findViewById(R.id.cb_three);
        cb_one.setOnCheckedChangeListener(this);
        cb_two.setOnCheckedChangeListener(this);
        cb_three.setOnCheckedChangeListener(this);
     }
      @Override
      public void onCheckedChanged(CompoundButton compoundButton, boolean b){
       if(compoundButton.isChecked())
            Toast.makeText(this,compoundButton.getText().toString(),Toast.LENGTH_SHORT).show();
     }
    }

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的基于Android Studio的登录界面示例: 1. 打开Android Studio,创建一个新的项目。 2. 在activity_main.xml文件中添加以下代码: ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Login" android:textSize="24sp" android:textStyle="bold" /> <EditText android:id="@+id/editTextUsername" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" android:hint="Username" android:layout_marginTop="16dp"/> <EditText android:id="@+id/editTextPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPassword" android:hint="Password" android:layout_marginTop="16dp"/> <RadioGroup android:id="@+id/radioGroup" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="16dp"> <RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Male" /> <RadioButton android:id="@+id/radioButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Female" /> </RadioGroup> <CheckBox android:id="@+id/checkBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Remember me" android:layout_marginTop="16dp"/> <Button android:id="@+id/buttonLogin" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Login" android:layout_marginTop="16dp"/> </LinearLayout> ``` 3. 在MainActivity.java文件中添加以下代码: ``` public class MainActivity extends AppCompatActivity { private EditText editTextUsername, editTextPassword; private RadioGroup radioGroup; private CheckBox checkBox; private Button buttonLogin; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editTextUsername = findViewById(R.id.editTextUsername); editTextPassword = findViewById(R.id.editTextPassword); radioGroup = findViewById(R.id.radioGroup); checkBox = findViewById(R.id.checkBox); buttonLogin = findViewById(R.id.buttonLogin); buttonLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String username = editTextUsername.getText().toString(); String password = editTextPassword.getText().toString(); int selectedId = radioGroup.getCheckedRadioButtonId(); RadioButton radioButton = findViewById(selectedId); String gender = radioButton.getText().toString(); boolean remember = checkBox.isChecked(); // TODO: Add login logic here Toast.makeText(MainActivity.this, "Username: " + username + "\nPassword: " + password + "\nGender: " + gender + "\nRemember me: " + remember, Toast.LENGTH_SHORT).show(); } }); } } ``` 4. 运行应用程序,您应该看到一个登录界面,包含用户名、密码、性别、记住我和登录按钮。 这只是一个简单的示例,您可以根据自己的需求添加更多的控件和逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值