Android应用崩溃创建开放的Intent

时间:2016-01-28 10:59:55

标签: java android android-intent android-activity

当我尝试打开“ReadActivity”时,我的Android应用程序“电子邮件”崩溃了。

在MainActivity中声明的方法OpenMail()应该启动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);
}

在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;
}
  
    

错误:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'android.app.ActivityThread $ ApplicationThread android.app.ActivityThread.getApplicationThread()'

  

我希望有人可以帮助我! 谢谢!

1 个答案:

答案 0 :(得分:2)

当您执行

时,实际上是在尝试创建新的MainActivity
new MainActivity().OpenMail(v, context, position);

如果您目前在MainActivity课程中,我认为您想要做这样的事情:

getActivity().OpenMail(v, context, position);

当然,不要忘记将ReadActivity添加到AndroidManifest