Reputation:
My Android App "E-Mail" crashes when I try to open the "ReadActivity".
The method OpenMail(), declared in MainActivity, should start ReadActivity:
public void OpenMail(View v, int index) {
String[] mail = {"x", "y", "z"};
Intent readIntent = new Intent(this, ReadActivity.class); <-- Error occurs here
readIntent.putExtra("mail", mail);
startActivity(readIntent);
}
The method is called in the ListViewAdapter:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder holder = new Holder();
View rowView = inflater.inflate(R.layout.listview_item, null);
holder.imageView = (ImageView) rowView.findViewById(R.id.imageView);
holder.txvSenderMail = (TextView) rowView.findViewById(R.id.txvSender);
holder.txvSubject = (TextView) rowView.findViewById(R.id.txvSubject);
holder.imageView.setImageResource(ImageID[position]);
holder.txvSenderMail.setText(SenderMail[position]);
holder.txvSubject.setText(Subject[position]);
rowView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new MainActivity().OpenMail(v, position);
}
});
return rowView;
}
The error: java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference
I hope anybody can help me! Thank you!
Upvotes: 0
Views: 170
Reputation: 845
You are actually trying to create new MainActivity when you do
new MainActivity().OpenMail(v, context, position);
I think you wanted to do something like this, if you are currently at MainActivity class:
getActivity().OpenMail(v, context, position);
Of course, dont forget to add ReadActivity to AndroidManifest
Upvotes: 2