【问题标题】:Populating a ListView from an Intent从 Intent 填充 ListView
【发布时间】:2012-06-06 14:10:07
【问题描述】:

我已经启动了一个带有应包含列表的 Intent 的 Activity,但是当我收集数据并将其绑定到我的 ListView 时,应用程序崩溃了。我在这一行得到错误:

resultMenu.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, selected));

这是我的整个活动。提前致谢。

public class Result extends Activity {
    private ArrayList<String> menuList;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.result);

        Intent intent = this.getIntent();
        ArrayList<String> selected = intent.getStringArrayListExtra("menuList"); 

        // Configure the listview
        ListView resultMenu = (ListView)this.findViewById(R.id.menuResult);
        resultMenu.setAdapter(new ArrayAdapter<String>(this, 
                android.R.layout.simple_list_item_1, selected));
    }
}

【问题讨论】:

  • 崩溃时添加 logcat...
  • 它说这行导致崩溃!但这对我来说看起来非常好..有什么想法吗? =====> resultMenu.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, selected));
  • 在日志猫中是这样的... 06-06 14:58:14.302: E/AndroidRuntime(441): at com.msyd.MenuProject.Result.onCreate(Result.java: 27)
  • 请添加更多的 logcat。这里没有足够的信息来说明问题所在。
  • 一个可能的原因可能是变量selected 为空。如果您收到 NullPointerException,这可能就是原因。如果是这种情况,请检查 ArrayList&lt;String&gt; selected = intent.getStringArrayListExtra("menuList"); 是否实际上返回了一个非空值。

标签: android android-intent arraylist android-listview


【解决方案1】:

由于你的强制关闭是由这条线引起的:

resultMenu.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, selected));

我能看到的唯一两个可能的错误是:

  1. selected 为空,或
  2. resultMenu 为空

这两个都会导致空指针异常。如果您的文件 result.xml 有一个带有 android:id="@+id/resultMenu 的 ListView 元素,则错误在 selected 中。

我打赌selected 可能是 String[] 或者 Intent 没有“menuList”键。

如何构建用于启动 Activity Result 的 Intent?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多