切换到其他活动android studio时ListView项删除

时间:2016-10-31 17:12:20

标签: android listview android-intent

我需要使用按钮从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();
}

1 个答案:

答案 0 :(得分:0)

在FirstActivity中

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。很明显,它“忘记了”以前的价值观。