2 回答

TA貢獻1843條經(jīng)驗 獲得超7個贊
每次單擊按鈕時,都會創(chuàng)建一個帶有新空 chunkSize ArrayList 的新活動,僅使用單個值創(chuàng)建。
您可以在每次單擊按鈕時添加到 MainActivity 中的chunkSizeArray,然后在各個 intentExtras 中發(fā)送一個計數(shù)器和數(shù)組的值。
然后從 bestFitActivity 中的所有 Intent Extra 中檢索并構(gòu)建 ArrayList。
這就是你可以做到的
public class MainActivity extends AppCompatActivity {
public static final String INTENTKEY_ARRAYELEMENTS = "arrayelemets";
public static final String INTENYKEY_ELEMENTX = "element_";
private static ArrayList<String> chunkSizeArray = new ArrayList<>();
Button bestFitDirector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bestFitDirector = (Button)findViewById(R.id.bestFitdirector);
bestFitDirector.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chunkSizeArray.add("Test" + String.valueOf(chunkSizeArray.size() + 1));
Intent myitent = new Intent(MainActivity.this,bestFitActivity.class);
myitent.putExtra(INTENTKEY_ARRAYELEMENTS, chunkSizeArray.size());
for (int i=0; i < chunkSizeArray.size(); i++) {
myitent.putExtra(INTENYKEY_ELEMENTX + String.valueOf(i),chunkSizeArray.get(i));
}
startActivity(myitent);
}
});
}
}
和
public class bestFitActivity extends AppCompatActivity {
ArrayList<String> chunkSizeArray = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_best_fit);
Intent mypassedIntent = getIntent();
int elements = mypassedIntent.getIntExtra(MainActivity.INTENTKEY_ARRAYELEMENTS,0);
for (int i = 0; i < elements; i++) {
chunkSizeArray.add(mypassedIntent.getStringExtra(MainActivity.INTENYKEY_ELEMENTX + String.valueOf(i)));
}
Toast.makeText(this,"The number of strings in the chukSizeArray is " + String.valueOf(chunkSizeArray.size()),Toast.LENGTH_SHORT).show();
for (String s: chunkSizeArray) {
Log.d("chunkSizeArray Value",s);
}
}
}
點擊 5 次后(點擊返回返回 MainActivity)日志為
2019-03-10 17:19:51.687 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test1
2019-03-10 17:19:56.362 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test1
2019-03-10 17:19:56.362 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test2
2019-03-10 17:19:59.877 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test1
2019-03-10 17:19:59.877 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test2
2019-03-10 17:19:59.877 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test3
2019-03-10 17:20:03.007 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test1
2019-03-10 17:20:03.007 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test2
2019-03-10 17:20:03.007 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test3
2019-03-10 17:20:03.007 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test4
2019-03-10 17:20:06.266 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test1
2019-03-10 17:20:06.266 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test2
2019-03-10 17:20:06.266 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test3
2019-03-10 17:20:06.266 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test4
2019-03-10 17:20:06.266 11271-11271/com.example.bestfitapp D/chunkSizeArray Value: Test5
添加間隙以將點擊分開
一種更簡單的方法是使用putStringArrayListExtra和getStringArrayListExtra方法,它們基本上代表您執(zhí)行循環(huán)。
所以主要活動有
public static final String INTENTKEY_ARRAY = "bestfitarray";
在 onClick 偵聽器中,您可以:-
myitent.putStringArrayListExtra(INTENTKEY_ARRAY,chunkSizeArray);
隨著
myitent.putStringArrayListExtra(INTENTKEY_ARRAY,chunkSizeArray);
在 bestFitActivity 中。

TA貢獻1868條經(jīng)驗 獲得超4個贊
你可以做一個簡單的黑客攻擊
改變ArrayList<String> chunkSizeArray = new ArrayList<>();
靜態(tài)喜歡private static ArrayList<String> chunkSizeArray = new ArrayList<>();
添加回答
舉報