在listview中使用意图时如何在android中处理NullPointerException?

Posted

技术标签:

【中文标题】在listview中使用意图时如何在android中处理NullPointerException?【英文标题】:How to handle NullPointerException in android while using intents in listview? 【发布时间】: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中输入的文本。当我运行这个应用程序时,我得到一个空白布局的新活动。 我的回答对你有用吗?如果有,请采纳! 非常感谢。它有效!!! 【参考方案1】:

移动这一行:

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

之后:

setContentView(R.layout.hello);

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

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

【讨论】:

以上是关于在listview中使用意图时如何在android中处理NullPointerException?的主要内容,如果未能解决你的问题,请参考以下文章

Android小部件ListView项目点击不起作用

使用sqlite意图后如何从listview中获取项目名称?

Android在使用requestLocationUpdates()时如何从意图中获取信息

在不同的活动中将数据从 ListView 传递到 TextView,Android

如何在android中使用意图过滤器获取数据

如何在android报警时从待处理的意图中获取requestCode