java如何在内部静态类中使用意图启动活动?
在我的Activityclass
中有一个静态和内部类。我需要使用Intent(context,nameOfTheNewActivity.class)
调用活动,因为我试图在单击RecyclerView.ViewHolder
中的项目时调用Intent
。我必须重写onClick
以获取使用getLayoutPosition()
单击的项目的位置(这个getLayoutPosition()工作正常)
现在,当我尝试使用Intent时,出现了错误:
Non-static method cannot be referenced by a static context.
我读了Stackoverflow的另一个链接,比如this。在这种情况下,如何在静态上下文和内部类中调用Intent,即如何在内部类中获取上下文,以及如何解决**基本**错误以不从静态类调用非静态类
在这里提问之前,我尝试了以下方法:
使用v.context从视图中获取上下文,但我继续解决这个问题,并且仍然从静态上下文调用非静态方法
从我的内部类中删除单词static,但没有解决问题,应用程序崩溃
我的代码:
public class ActivityOne extends AppCompatActivity implements
GoogleApiClient.OnConnectionFailedListener {
public static class MessageViewHolderOfFriend extends RecyclerView.ViewHolder { public MessageViewHolderOfFriend(View v) {
super(v);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
;
Intent intent = new Intent(v.getContext(),NewActivityToRun.class);
startActivity(intent);//Error in this Line//
}
});
}
}
# 1 楼答案
使用上下文时,需要使用上下文启动SecondActivity。起始触觉(意图) 你应该加上 意图。添加标志(意图、标志、活动、新任务) 星前触觉(意图)
主要活动。爪哇:
第二项活动。爪哇:
所有实现都在ContextImpl中。java文件
# 2 楼答案
尝试使用活动的引用
如果这不起作用,那么就知道
startActivity
是任何上下文的方法参考How to open a different activity on recyclerView item onclick
关于
删除
static
可能更接近解决方案。这个应用程序实际上是构建的。应用程序崩溃意味着您应该阅读日志并实施正确的解决方案