我正在開發一個應用程序,它發送一個字符串數組與putStringArrayListExtra。在接受第二項活動時。問題是,如果我發送2個項目,則2個活動將打開。第二個元素是在列表視圖(僅顯示一個),當我點擊時,現在有第一個項目。我想要在同一個列表視圖中的2個項目。我究竟做錯了什麼?Arraylist元素開始太多活動
第一項活動
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);
}
將你的Arraylist聲明放在for循環之外。在for循環之後還初始化意圖和調用startActivity()。 – sJy
將意圖數據傳遞邏輯放在for循環之外 –