如何在同一个活动中使用两个不同的OnClickListener?

时间:2014-01-21 15:38:12

标签: java android

我需要导入以下两个不同的库

import android.content.DialogInterface.OnClickListener;
import android.view.View.OnClickListener;

因为我希望DialogInterface.OnClickListenerView.OnClickListener同时参与同一活动!!

我该如何处理?!!

因为当我同时使用onClickListener时,我收到了错误!

是否可以在一个班级中有两个不同的onClickListener?!!

4 个答案:

答案 0 :(得分:2)

仅导入android.content.DialogInterfaceandroid.view.View。然后,您将能够通过使用父类限定它们来引用不同的OnClickListener类,如

DialogInterface.OnClickListener foo = ...;
// and
View.OnClickListener bar = ...;

在这种情况下,你很幸运,因为具有相同名称的两个类碰巧是嵌套类。如果它们不是 - 唯一的区别是包名,你必须使用至少其中一个的完全限定类名:

android.content.DialogInterface.OnClickListener foo = ...;
OnClickListener bar = ...;

// or 
OnClickListener foo = ...;
android.view.View.OnClickListener bar = ...;

// or
android.content.DialogInterface.OnClickListener foo = ...;
android.view.View.OnClickListener bar = ...;

阅读或写作既不好玩。

答案 1 :(得分:1)

一种方法可能是

 public class MyClass implements DialogInterface.OnClickListener, View.OnClickListener {

 }

答案 2 :(得分:0)

您可以导入一个并按照onClickListener

调用下一个Dialog.onClickListener

答案 3 :(得分:0)

让你的类实现接口

  extends Activity implements View.OnClickListener,DialogInterface.OnClickListener

然后

@Override
public void onClick(DialogInterface dialog, int which) {
    // do something

}

@Override
public void onClick(View v) {
    // dosomething
}