Android:View点击事件

<1>创建内部类:

创建一个内部类实现OnClickListener接口并重写onClick()方法,在方法中写入点击事件的逻辑。

内部类写完后需要为按钮设置setOnClickListener(Listener listener)属性,在参数中传入之前创建好内部类对象即可,这样当点击按钮时就会自动触发内部类中的onClick()方法调用事件逻辑。

这里比较重要的一点,要为按钮设置点击事件前要先获取到该控件的引用,需要在布局文件中为按钮设置id属性,在代码中使用findViewById(R.id)方法得到该控件的View对象,最后通过强制类型转换得到该控件,具体代码如下:

为控件设置id属性:

<Button

     android:id=”@+id/button1”     //为控件设置id属性

     …….

/>

得到控件引用,创建内部类实现OnClickListener接口:

protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button button1 = (Button) findViewById(R.id.button1);
    Button button2 = (Button) findViewById(R.id.button2);
    //传入实现了onClickListener接口的类的对象
    button1.setOnClickListener(new MyButton());
    button2.setOnClickListener(new MyButton());
}
private class MyButton implements OnClickListener{
  @override
  public void onClick(View v){
        switch(v.getId()){
               case R.id.button:
                   log.i("定义属性响应按钮点击事件");
                   break;
               case R.id.button1:
                   log.i("定义属性响应按钮点击事件");
                   break;
        }
  }
}


  

使用这种点击事件的好处是,当按钮较多时可以在onClick(View v)方法中使用switch语句case属性设置各自不同的点击事件逻辑。

<2>主类中实现OnClickListener接口: 

在主类中实现OnClickListener接口,然后重写onClick()方法,并通过switch语句判断是哪个按钮被点击,然后执行相应操作,具体代码如下:

public class MainActivity extends Activity implements OnClickListener{
       protected void onCreate(Bundle savedInstanceState){
                 super.onCreate(savedInstanceState);
                 setContentView(R.layout.activity_main);
                 Button button1 = (Button) findViewById(R.id.button1);
                 Button button2 = (Button) findViewById(R.id.button2);
                 //按钮绑定接口
                 button1.setOnClickListener(this);
                 button2.setOnClickListener(this);
       }
       //在重载的方法中实现点击设置

       @override
        public void onClick(View v){
               switch(v.getId()){
                      case R.id.button:
                            log.i("定义属性响应按钮点击事件");
                            break;
                      case R.id.button1:
                            log.i("定义属性响应按钮点击事件");
                            break;
                }
       }
}


需要注意的是,button.setOnClickListener(this);方法中接收了一个参数this,这个this代表的是该Activity的引用。由于Activity实现了OnClickListener接口,所以在这里this代表了OnClickListener的引用,在方法中传入this就代表该控件绑定了点击事件的接口。

<3>匿名内部类:

当按钮较少或者只有一个按钮时,就不需要再单独创建一个类实现OnClickListener接口了,可以直接创建OnClickListener的匿名内部类传入按钮的setOnClickListener()参数中,具体代码如下:

Button button1=(Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener(){
      @override
      public void onClick(View v){
             log.i("定义属性响应按钮点击事假");
      }
});


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中,list view点击事件的实现可以通过以下步骤完成: 1. 首先,在XML布局文件中定义list view组件: ``` <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 在Java代码中,获取list view组件并为其设置适配器: ``` ListView listView = (ListView) findViewById(R.id.list_view); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter); ``` 其中,data是一个字符串数组,用于作为list view的数据源。 3. 接下来,为list view设置点击事件监听器: ``` listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 处理点击事件 } }); ``` 在监听器的onItemClick方法中,可以编写处理list view点击事件的代码。其中,position参数表示用户点击的位置,从0开始计数。 4. 最后,可以在处理点击事件的代码中,根据用户点击的位置获取相应的数据,并执行相应的操作: ``` String item = (String) parent.getItemAtPosition(position); Toast.makeText(MainActivity.this, "You clicked " + item, Toast.LENGTH_SHORT).show(); ``` 在这个例子中,我们通过getItemAtPosition方法获取用户点击位置所对应的数据,并通过Toast显示出来。 以上就是Android中list view点击事件的实现方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值