android - 将列表传递给 Android 中的另一个 Activity

标签 android android-activity parameter-passing android-intent

我已经创建了一个列表,并想将该列表传递给另一个 Activity ,但是当我创建 Intent 时,我在 putExtra 语句中遇到错误。只是想知道是否有任何简单的方法来传递字符串列表而不是单个字符串?

谢谢

private List<String> selItemList;
private ListView mainListView = null;       

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.recipes);
        Button searchBtn = (Button) findViewById(R.id.searchButton);
        searchBtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if (selItemList == null) {
                Toast.makeText(getApplicationContext()," Please Make A Selection ", Toast.LENGTH_SHORT).show();
            } else {
                Intent intent = new Intent(Recipes2.this, XMLParser.class);
                intent.putExtra("items_to_parse", selItemList);
                startActivityForResult(intent, 0);              
            }
        }
        });

最佳答案

您可以使用 Intent 中的 putStringArrayListExtra

public Intent putStringArrayListExtra (String name, ArrayList value)

  private final List<String> selItemList;
  private ListView mainListView = null;       

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.recipes);
        Button searchBtn = (Button) findViewById(R.id.searchButton);
        searchBtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if (selItemList == null) {
                Toast.makeText(Recipes2.this," Please Make A Selection ", Toast.LENGTH_SHORT).show();
            } else {
                Intent intent = new Intent(Recipes2.this, XMLParser.class);
                intent.putStringArrayListExtra("items_to_parse", (ArrayList<String>) selItemList);
                startActivityForResult(intent, 0);              
            }
        }
        });

在你的 XMLParser.class 中:

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (getIntent().getExtras() != null) {
            for(String a : getIntent().getExtras().getStringArrayList("items_to_parse")) {
                Log.d("=======","Data " + a);
            }
        }

关于android - 将列表传递给 Android 中的另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6087198/

相关文章:

来自 Maven ExceptionInInitializerError (IntelliJ IDEA 12) 的 Android 库

java - 当两个微调器等于特定字符串时,如何允许调用函数?

android - ActivityInstrumentationTestCase2 和 android 库项目 : resources fail to load

java - java 函数参数的求值顺序是什么

android - 如果自定义对话框中的 edittext 为空,则禁用按钮

android - 如何从 ResolveInfo 启动 Intent

android - 区分按下 "home"按钮和打开另一个Activity

android - 在 Activity 上调用 onPause 时数据会发生什么

javascript/jquery 传递变量

Javascript - 如何确保使用特定参数调用回调?