Pzt*_*tar 29 android class onclicklistener
是否可以创建一个二级类来保存OnClick侦听器?意义没有在Activity类中创建?
我只是发现在主活动类中放置OnClick监听器只是凌乱,我宁愿将它们放在不同的类中.谢谢
MH.*_*MH. 30
当然,那是可能的.只需创建一个实现View.OnClickListener并将其设置为侦听器的类View.例如:
public class ExternalOnClickListener implements View.OnClickListener {
public ExternalOnClickListener(...) {
// keep references for your onClick logic
}
@Override public void onClick(View v) {
// TODO: add code here
}
}
Run Code Online (Sandbox Code Playgroud)
然后将上面的类的实例设置为侦听器:
view.setOnClickListener(new ExternalOnClickListener(...));
Run Code Online (Sandbox Code Playgroud)
参数化构造函数是可选的,但很可能你需要通过一些东西来实际使你的onClick(...)逻辑工作.
匿名实现类通常更容易使用.只是一个想法.
Ren*_*ith 10
而不是把它onCLicklistener放在一个单独的类中,为什么不试着在onClickListener外面定义onCreate()?
例如:像这样
的onCreate()
yourViewName.setOnClicklistener(listener):
Run Code Online (Sandbox Code Playgroud)
外面onCreate()
private OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
};
Run Code Online (Sandbox Code Playgroud)
是的你可以.但是,使侦听器成为内部类有一个优点 - 它可以直接访问活动类的字段和变量.如果你使它成为一个单独的类,并且你的监听器实际上需要访问5个视图,那么你的监听器构造函数可能如下所示:
MyListener listener = new MyListener(context, button, textView1, textView2, ratingBar, imageView);
这也有点笨重.如果您的听众很简单,请继续将其作为单独的课程.否则,由您提供可读性.
| 归档时间: |
|
| 查看次数: |
30219 次 |
| 最近记录: |