Android点击事件属于,android中三种onClick事件的实现,与对比

在达内培训,刚接触android不久,对于button的onclick事件有点纠结。因为上了两三天就换了个老师,两个老师讲onclick事件用了两种不同的实现方法,我才发现可以有好几种方式实现。

方式一:在activity的onCreate()方法中,嵌入如下代码:

Button button =

(Button)findViewById(R.id.button1);

button.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

TextView textview = (TextView)findViewById(R.id.textView1);

textview.setText("Button");

}

});

这种方式用findviewbyid通过id实例化出来这个button,然后通过设置button的listener监听对象,并同时实现接口OnClickListenter的OnClick()方法。这种方式的代码量不多,但是在java中,面向对象的思想,关于耦合,模块化它达不到。代码堆叠在一起,比较臃肿。

方式二:让acticity持有TextView,并且新建类Button_Listener实现接口OnClickListener,activity中的代码为:

public class TestOnClickActivity extends

Activity {

private TextView textview;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button button = (Button)findViewById(R.id.button1);

this.textview = (TextView)findViewById(R.id.textView1);

button.setOnClickListener(new Button_Listener(this));

}

public TextView getTextview() {

return this.textview;

}

}

类Button_Listener的代码为:

class Button_Listener implements OnClickListener {

private TestOnClickActivity activity;

public Button_Listener(TestOnClickActivity activity) {

this.activity = activity;

}

@Override

public void onClick(View v) {

TextView textview = activity.getTextview();

textview.setText("你点击了Button");

}

}

方式二:

在方式二中,为了改正方式一的接口实现的不规范,特别重新建立了一个类:Button_Listener。

这种方式代码结构清晰,在为Button加入监听方法是,只需要new

Button_Listener(this)即可。但同时,我们也能够发现,因为不属于类TestOnClickActivity,所以类Button_Listener必须通过持有TestOnClickActivity,

将其作为成员。并且,我们需要在TestOnClickActivity

中显示的加入TextView,并书写getTextview()方法,才能够实现我们的程序意图。

虽然代码的模块化,解耦化得到了一定程度上的实现,但换来的结果是代码更多,书写更加繁琐。

方式三:在组件文件main.xml中,对Button加入:

android:onClick="onClick_Event"

在activity中加入以下代码:

public void onClick_Event(View view)

{

TextView textview = (TextView)findViewById(R.id.textView1);

textview.setText("Button");

}

在方式三种,我们只需要在TestOnClickActivity

中增加一个成员函数onClick_Event(),并在组件文件中加入对其的使用描述即可。

代码结构简单,清晰,代码量也大大减少,并且通过xml文件的可配置性,增长了工程的可维护性,模块化进一步增强!

现在老师教的就是用第三种方法。貌似挺不错的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 实现 Button 按钮点击事件方式有以下几种: 1. 实现 OnClickListener 接口:创建一个实现 OnClickListener 接口的类,然后将该类的实例传递给 Button 的 setOnClickListener() 方法。 示例代码: ``` public class MainActivity extends AppCompatActivity implements View.OnClickListener { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); button.setOnClickListener(this); } @Override public void onClick(View v) { // 处理点击事件 } } ``` 2. 使用匿名内部类实现 OnClickListener 接口:在 Button 的 setOnClickListener() 方法传递一个 OnClickListener 接口的匿名内部类作为参数。 示例代码: ``` public class MainActivity extends AppCompatActivity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 处理点击事件 } }); } } ``` 3. 在布局文件使用 android:onClick 属性:在布局文件给 Button 控件添加 android:onClick 属性,并指定一个在 Activity 定义的方法名。 示例代码: ``` <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click me" android:onClick="onButtonClick" /> ``` 然后在 Activity 定义一个名为 onButtonClick() 的方法来处理点击事件: ``` public class MainActivity extends AppCompatActivity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); } public void onButtonClick(View view) { // 处理点击事件 } } ``` 以上三种方式都可以实现 Button 按钮点击事件处理,选择哪种方式取决于具体场景和个人喜好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值