在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 t
。 findViewById(int)
方法是activity本身的方法,只有在onCreate()
中实例化了activity才能执行。
This 是一篇出色的文章,可让您深入了解活动生命周期的工作原理。我强烈建议在继续使用 Android 之前花更多时间阅读活动及其基础知识,尤其是生命周期。此外,当您将来发布问题时,我强烈建议您尝试更清楚一点,发布错误日志,并告诉我们您已经尝试过哪些没有奏效。
【讨论】:
以上是关于在listview中使用意图时如何在android中处理NullPointerException?的主要内容,如果未能解决你的问题,请参考以下文章
使用sqlite意图后如何从listview中获取项目名称?
Android在使用requestLocationUpdates()时如何从意图中获取信息