@Override
protected void onResume() {
super.onResume();
show = (ListView)findViewById(R.id.listView);
Intent intent = getIntent();
String Title = intent.getExtras().getString("name");
addArray.add(Title);
ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, addArray);
show.setAdapter(adapter);
}
我的应用程序一直崩溃,因为我的onResume()
方法出了问题。在尝试使用getIntent()
创建ListView
时,我是否被禁止使用ArrayAdapter
?
答案 0 :(得分:1)
如果要使用设置bundle启动新活动,则getIntent()。getExtra()将按预期正常工作。
你的getIntent()。getExtra()方法返回null值,这就是你无法初始化数组适配器的原因。检查非空。
你可以使用:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
String Title = intent.getExtras().getString("name");
addArray.add(Title);
ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, addArray);
show.setAdapter(adapter);
}
答案 1 :(得分:0)
如果您使用的是片段,请将findViewById
方法放在onCreateView()
内,将适配器设置在runOnUIThread()
内(如果您的代码有网络调用)并接受{{1}内的意图}}。如果您正在使用某项活动,则可能需要在onCreate()
内执行这些操作。另外,使用方法通知适配器可能的数据更改。