Arraylist元素开始过多的活动

时间:2016-07-25 06:47:00

标签: java android listview

我正在开发一个应用程序,它使用putStringArrayListExtra发送一个字符串数组。在我收到的第二项活动中。问题是,如果我发送2项,则会打开2项活动。第二个元素在listview上(只显示一个),当我点击回来时,现在有第一个项目。我想要SAME列表视图中的2项。我做错了什么?

第一项活动

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();

            }
        }
    });

第二项活动

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);

    }

1 个答案:

答案 0 :(得分:3)

如果您在循环时创建新的arraylist,请在下面执行以下操作。为什么您没有获得正确的值。

并且也让你在循环之外的意图。

 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);