java - Arraylist 元素启动过多 Activity

标签 java android listview

我正在开发一个应用程序,它使用 putStringArrayListExtra 发送字符串数组。在我收到的第二项 Activity 中。问题是,如果我发送 2 个项目,则会打开 2 个 Activity 。第二个元素位于 ListView 上(仅显示一个),当我单击返回时,现在有第一个元素。我想要同一个 ListView 中的 2 项。我做错了什么?

第一个 Activity

final int len = thumbnailsselection.length;
            int cnt = 0;
            String selectImages = "";
           // String result = "";
            String ar="";


            for (int i =0; i<len; i++)
            {
                if (thumbnailsselection[i])
                {
                    cnt++;
                    ar = nev[i];
                    selectImages = nev[i] + "|";
                   // List<String> myList = new ArrayList<String>(Arrays.asList(selectImages));
                   ArrayList<String> arr = new ArrayList<String>();
                    arr.add(selectImages);

                   Intent intent = new Intent(Gallery.this,Upload.class);
                    intent.putStringArrayListExtra("array_list", arr);

                    startActivity(intent);

                    // Log.i("adat","galleri:" + arr);





                }

            }
            if (cnt == 0){
                Toast.makeText(getApplicationContext(),
                        "Please select at least one image",
                        Toast.LENGTH_LONG).show();
            } else {





                Toast.makeText(getApplicationContext(),
                        "You've selected Total " + cnt + " image(s).",
                        Toast.LENGTH_LONG).show();

            }
        }
    });

第二个 Activity

ListView listView;

ArrayAdapter<String> adapter;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_upload);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    listView = (ListView) findViewById(R.id.list);

    Bundle b = getIntent().getExtras();


       // ArrayList<String> arr = (ArrayList<String>)b.getStringArrayList("array_list");
    ArrayList<String> arr = b.getStringArrayList("array_list");
        Log.i("adat","UPLOAD:"+arr);


    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, android.R.id.text1, arr);
    listView.setAdapter(adapter);

    }

最佳答案

每次循环时创建新的数组列表时,请执行以下操作,这就是为什么您没有获得正确的值的原因。

同时也将你的 Intent 带出循环。

 ArrayList<String> arr = new ArrayList<String>();
 for (int i =0; i<len; i++){
     if (thumbnailsselection[i]){
         cnt++;
         ar = nev[i];
         selectImages = nev[i] + "|";             
         arr.add(selectImages); 
     } 
 }

Intent intent = new Intent(Gallery.this,Upload.class);
intent.putStringArrayListExtra("array_list", arr);
startActivity(intent);

关于java - Arraylist 元素启动过多 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38561279/

相关文章:

java - 如何在通过java创建的Excel工作表中设置整数值?

java - 将异常传播回来并继续 java 中的执行流程

android - 仅在 API 级别 > 15 上导入

Android列 '_id'不存在?

java - 每按一次按钮,框架的关闭和重新打开频率就会增加

android - 构建签名的 apk 时显示错误

android - 搜索位置时防止 GPS 耗尽手机电池

android - 有没有办法用 Espresso 测试 Chrome 自定义标签?

c# - 将数据从 SQLite 数据库输入 ListView

java - 我应该使用微服务或映射实体在多个应用程序之间共享数据吗?