user5033312
user5033312

Reputation:

Android app crashes creating opening Intent

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

Answers (1)

Prokky
Prokky

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

Related Questions