我该如何处理getActivity()?

时间:2019-02-25 13:30:12

标签: java android

 import com.github.nkzawa.emitter.Emitter;

private Emitter.Listener onNewMessage = new Emitter.Listener() {
@Override
public void call(final Object... args) {
    getActivity().runOnUiThread(new Runnable() {
        @Override
        public void run() {
            JSONObject data = (JSONObject) args[0];
            String username;
            String message;
            try {
                username = data.getString("username");
                message = data.getString("message");
            } catch (JSONExpextion e) {
                return;
            }
        }
    });
}
};

当我在项目中放入此代码时,它说“无法解析方法     获得活动“ 那我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您正在从内部类getActivity()调用Emitter。因此,您应将getActivity()替换为活动名称,后跟.this。例如,您的活动名称为MainActivity,然后将getActivity()替换为MainActivity.this

您的代码将如下所示:

private Emitter.Listener onNewMessage = new Emitter.Listener() {
@Override
public void call(final Object... args) {
    MainActivity.this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            JSONObject data = (JSONObject) args[0];
            String username;
            String message;
            try {
                username = data.getString("username");
                message = data.getString("message");
            } catch (JSONExpextion e) {
                return;
            }
        }
    });
}
};