【发布时间】:2016-06-15 06:06:58
【问题描述】:
在我的项目中,我有一些按钮,它们有自己的 View.OnClickListener。 我想要的是将所有这些 onClickListener “外部化”为实现接口的 java calss,并在此处处理所有单击事件。
但我发现了一个问题,我不知道如何解决它。
其中一个按钮在类中启动setResult(RESULT_OK, startChatIntent) 和finish(), but this方法,标记为:Cannot be resolved as method.
这是类:(我去掉了其他按钮功能,可以正常工作,使其更清晰)
public class startCircuitListener implements View.OnClickListener {
private int mChatType;
private String mGroupName;
private String mNickName;
private String mMessage;
private ArrayList<String> mGroupEmails;
private Context context;
public startCircuitListener(int mChatType, String mGroupName, String mNickName, String mMessage, ArrayList<String> mGroupEmails, Context context) {
this.mChatType = mChatType;
this.mGroupName = mGroupName;
this.mNickName = mNickName;
this.mMessage = mMessage;
this.mGroupEmails = mGroupEmails;
this.context = context;
}
@Override
public void onClick(View v) {
Intent startChatIntent = new Intent();
startChatIntent.putExtra("chatRoom", mGroupName);
startChatIntent.putExtra("chatServer", HelperVariables.CONFERENCE_SERVER_NAME);
startChatIntent.putExtra("nickname", mNickName);
startChatIntent.putExtra("Individual_Group", 0);
startChatIntent.putExtra("MessageToSend", mMessage);
startChatIntent.putExtra("Invitations", mGroupEmails);
setResult(RESULT_OK, startChatIntent);
finish();
}
}
setResult 和 finish() 怎样才能工作?
【问题讨论】:
-
setResult()和finish()在Activity中声明。所以你需要在Activity的实例上调用这些方法。如果您想展示更多代码,我们可以提供更准确的建议。 - 你的听众是普通的“外部”类,还是另一个类的非静态内部类,甚至可能是Activity? -
是的,这个监听器是一个外部java类(基本上是一个新文件),我想在按钮中调用它:`bt_startCircuit.setOnClickListener(new startCircuitListener(param1,param2, ..参数N));
标签: java android onclicklistener implements