美文网首页
Android点击事件

Android点击事件

作者: Epimenides | 来源:发表于2020-07-23 22:31 被阅读0次

一、Android点击事件四种写法:

  1. (不推荐)结合layout文件声明方法
  2. 内部实现类
  3. Activity实现OnClickLitener
  4. 匿名内部实现类

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. 在事件的方法中处理事件

2. 内部实现类完成点击事件的小案例

控件 缩写前缀
TextView tv
EditTextet et
ImageView iv
Button/RadioButton/ImageButton btn/rb/ib
RelativeLayout/LinearLayout/FrameLayout rl/ll/fl
ListView lv
WebView wv
CheckBox cb
ProgressBar pb

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. 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();
        }
    }
}

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();
                }
            }
        }
    }
}

相关文章

网友评论

      本文标题:Android点击事件

      本文链接:https://www.haomeiwen.com/subject/wvuklktx.html