在我的项目中,我有一些带有自己的View.OnClickListener的按钮。
我想要的是将所有onClickListener“外部化”为实现该接口的java calss,并在此处处理所有click事件。

但是我发现一个问题,我不知道如何解决。

按钮之一启动类内的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();

    }

}


如何使setResultfinish()工作?

最佳答案

您必须使用当前的Activity实例创建侦听器实例,并将其存储为startCircuitListener的成员。

然后呼叫this.myActivity.setResult(RESULT_OK, startChatIntent);。对于finish()来说也是一样;

08-15 19:45