我需要使用按钮从FirstActivity动态添加项目到listView,并且listView位于SecondActivity。我的问题是我只能添加一个项目而不是多个项目,一旦我按下按钮,它就切换到SecondActivity,并且只在第一行添加第一个项目。当我切换回FirstActivity并再次按下时,它无法将项目添加到第二行,它将再次替换第一行。我想要实现的目标是当按下FirstActivity按钮时,它将在第二个活动中向listView添加一个项目。当第二次按下按钮时,它会在secondActivity中将第二个项目添加到listView,第三次---等等。
**我第一次活动的代码
protected void onCreate(Bundle savedInstanceState) {
PressButton = (Button) findViewById(R.id.button);
PressButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hours = 3;
Intent i = new Intent(getApplicationContext(), SecondActivity.class);
i.putExtra("Hours", hours);
startActivity(i);
}
});
**我的SecondActivity的代码 公共类SecondActivity扩展AppCompatActivity { ArrayList listItems = new ArrayList(); ArrayAdapter适配器; ListView practiceList; 按钮btnBack;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_previous_practices);
Bundle extras = getIntent().getExtras();
int hours = extras.getInt("Hours");
if (practiceList == null) {
practiceList = (ListView) findViewById(R.id.practiceList);
}
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
listItems);
setListAdapter(adapter);
listItems.add(Integer.toString(hours));
adapter.notifyDataSetChanged();
}
答案 0 :(得分:0)
:
final List<Integer> hours = new ArrayList<Integer>()
protected void onCreate(Bundle savedInstanceState) {
PressButton = (Button) findViewById(R.id.button);
PressButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hours.add(3);
Intent i = new Intent(getApplicationContext(), SecondActivity.class);
i.putExtra("Hours", hours);
startActivity(i);
}
});
第二个活动中的:
Bundle extras = getIntent().getExtras();
List<Integer> hours = extras.getIntegerArrayList("Hours");
现在它将是您可以在SecondActivity中使用的列表。当您在SecondActivity中单击backButton时,它会被销毁,并且每次单击FirstActivity App中的Button时都会创建新的SecondActivity。很明显,它“忘记了”以前的价值观。