【问题标题】:How to handle NullPointerException in android while using intents in listview?在listview中使用意图时如何在android中处理NullPointerException?
【发布时间】:2015-08-11 06:21:48
【问题描述】:

我的布局由一个edittext 和listview 组成。单击一个listitem 时,它应该启动一个新活动,该活动应该显示用户在edittext 中输入的字符串。 这是我的启动活动。

public class MainActivity extends ActionBarActivity 

{

String []fonts=new String[]{"Droid Serif","Droid Sans","Droid Sans Mono"};

ListView lv;

ArrayAdapter<String> adapter;

EditText e;

String msg;

String a=null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    lv=(ListView)findViewById(R.id.listView);
    adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,fonts);
    lv.setAdapter(adapter);
    msg=e.getText().toString();
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                Intent i = new Intent(MainActivity.this, Final.class);
                if(msg.equals(a)) {
                    i.putExtra("msg", msg);
                    startActivity(i);
                }
                else
                {
                    throw new NullPointerException("no null");
                }


        }});

}
}

这是我的第二个活动。

public class Final extends Activity {

TextView t=(TextView)findViewById(R.id.textView);

@Override
protected void onCreate(Bundle savedInstanceState) {
    String msg=getIntent().getExtras().getString("msg",null);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.hello);
    t.setText(msg);
}
}

【问题讨论】:

  • 你有什么问题?
  • 我正在尝试设置用户在edittext中输入的文本。当我运行这个应用程序时,我得到一个空白布局的新活动。
  • 我的回答对你有用吗?如果有,请采纳!
  • 非常感谢。它有效!!!

标签: android android-intent android-listview


【解决方案1】:

移动这一行:

TextView t=(TextView)findViewById(R.id.textView);

之后:

setContentView(R.layout.hello);

您正在获得 NPE,因为您试图在创建活动之前初始化您的 TextView tfindViewById(int)方法是activity本身的方法,只有在onCreate()中实例化了activity才能执行。

This 是一篇出色的文章,可让您深入了解活动生命周期的工作原理。我强烈建议在继续使用 Android 之前花更多时间阅读活动及其基础知识,尤其是生命周期。此外,当您将来发布问题时,我强烈建议您尝试更清楚一点,发布错误日志,并告诉我们您已经尝试过哪些没有奏效。

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2012-11-15
    相关资源
    最近更新 更多