onClick后退按钮重置我的列表视图

时间:2016-03-06 14:11:35

标签: java android listview

所以这是我的问题,每当我按下后退按钮时,主活动中listview中的数据都会重置。我如何保留或保存数据?这是我的后退按钮的代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);

    content = (TextView) findViewById(R.id.pangalawa);
    BackButton = (Button) findViewById(R.id.back);
    Bundle bundle = getIntent().getExtras();
    content.setText(bundle.getString("extra_intent1"));


    BackButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Log.d("debug", "button clicked");
            Intent intent = new Intent(secactivity.this, MainActivity.class);
            startActivity(intent);

        }
    });

}

2 个答案:

答案 0 :(得分:0)

您正在点击后退按钮创建MainActivity的新实例,因此它再次创建布局并将列表设置为空白。

要将列表保留为上一个,您应该将onClick方法中的代码替换为

    @Override
    public void onClick(View v) {
        Log.d("debug", "button clicked");
        finish();
    }

另外,请确保从MainActivity调用当前活动时,您没有调用finish()方法。

它会起作用。

答案 1 :(得分:0)

保存状态:

 @Override
 public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);

  savedInstanceState.getString("extra_intent1", bundle.getString("extra_intent1"));

 }

恢复状态:

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);

  String extra_intent1= savedInstanceState.getString("MyBoolean");

}