我有一个静态和内类内我的Activityclass
。我需要使用Intent(context,nameOfTheNewActivity.class)
来调用一个活动,因为我尝试在点击RecyclerView.ViewHolder
中的某个项目时调用Intent
。我必须重写onClick
才能使用getLayoutPosition()
(此getLayoutPosition()正常工作)点击项目的位置。如何在内部静态类中使用Intent启动一个活动?
现在,当我尝试使用意图我有错误:
Non-static method cannot be referenced by a static context.
我读到另一个链接来自像#1 this。我如何在静态上下文和内部类的情况下调用Intent,即,如何获取内部类中的上下文,以及如何解决**基本**错误,以便不调用非静态从静态类的类?
我尝试以下之前在这里问:
使用v.context从视图的背景之下,我继续与问题 - 现在依然调用从静态上下文的非静态方法。
删除单词静态形式我的内部类,但并没有解决和应用程序崩溃。
我的代码:
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//
}
});
}
}
检查这个例子,它肯定会帮助https://github.com/shanwu/SimpleListView示例 – shanwu
将上下文传递给适配器。 1.你应该保持你的内部类是静态的,这是防止内存泄漏的好方法。 – shanwu