尝试在调用虚拟方法 'java.lang.String中 android.content.Context.getPackageName()'空对象引用'java.lang.String中android.content.Context.getPackageName()' 上的空对象引用
我知道这个问题问这里的很多时间,但我不能能解决这个 我在android系统是新的我是能不能够解决这个问题
我想点击卡片视图和开始新的活动 我为此编写代码,但问题是这个错误来,当我打卡尔夫IEW
请告诉我如何解决这个
下面是我的代码
马亚活动
public class MainActivity extends AppCompatActivity {
private List<Data> movieList = new ArrayList<>();
private RecyclerView recyclerView;
private MoviesAdapter mAdapter;
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
mAdapter = new MoviesAdapter(movieList,context) ;
context = getApplicationContext();
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(mAdapter);
prepareMovieData();
}
private void prepareMovieData() {
Data data = new Data("MadMax");
movieList.add(data);
data = new Data("MadMax1");
movieList.add(data);
data = new Data("MadMax2");
movieList.add(data);
data = new Data("MadMax3");
movieList.add(data);
data = new Data("MadMax4");
movieList.add(data);
mAdapter.notifyDataSetChanged();
}
}
适配器
public class MoviesAdapter extends RecyclerView.Adapter<MoviesAdapter.MyViewHolder> {
private List<Data> moviesList;
private Context context;
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.single_row_layout, parent, false);
return new MyViewHolder(itemView);
}
public static class MyViewHolder extends RecyclerView.ViewHolder{
public TextView title;
public View view;
public MyViewHolder(View v) {
super(v);
view = v;
title = (TextView) view.findViewById(R.id.title);
}
}
public MoviesAdapter(List<Data> moviesList,Context context) {
this.moviesList = moviesList;
this.context = context;
}
@Override
public void onBindViewHolder(MyViewHolder holder,int position) {
Data data = moviesList.get(position);
holder.title.setText(data.getTitle());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context,Parts.class);
context.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return moviesList.size();
}
}
logcat的
02-25 18:05:43.121 11930-11930/com.example.owner.theconstitutionofindia E/AndroidRuntime: 致命异常:主 工艺:com.example.owner.theconstitutionofindia,PID:11930 显示java.lang.NullPointerException :试图在android.content上的android.content.ComponentName。(ComponentName.java:77) 上调用虚拟方法 'java.lang.String android.content.Context.getPackageName()'对象参考 。 Intent。(Intent.java:4170) at com.example.owner.theconstitutionofindia.MoviesAdapter $ 1.onClick(MoviesAdapter.java:86) at android.view.View.performClick(View.java:4785) at android.view.View $ PerformClick.run(View.java:19884) at android.os.Handler.handleCallback(Handler.java:739) 在android.os.Handler.dispatchMessage(Handler.java:95) 在android.os.Looper.loop(Looper.java:135) 在android.app.ActivityThread.main(ActivityThread.java:5343) 在java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.ru N(ZygoteInit.java:905) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
请告诉我如何解决这个问题,以及如何开始通过卡新活动视图。
首先检查两个文件是否在同一个包中,并且也将活动传递给适配器。 –
谢谢你回复它的工作 –