我的onResume方法有什么问题?

时间:2016-03-06 04:32:46

标签: android listview android-intent

@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

2 个答案:

答案 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()内执行这些操作。另外,使用方法通知适配器可能的数据更改。