即使使用saveinstancestate(),活动切换也不会使视图的状态保持活动状态?

时间:2010-08-31 18:18:41

标签: android

萨拉姆

我刚刚开始研究android(初学者)。我陷入了活动状态的复杂性。我创建了两个活动(activity1和activity2)。我从activity1移动到2,然后使用按钮(活动后退)返回到activity1,不恢复视图的值(状态)。这是代码..

活性1

public class activity1 extends Activity implements OnClickListener {

    String txt;
    EditText etxt;
    TextView tv;

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        if (savedInstanceState != null) {
            Toast.makeText(this, "onCreate() : " , Toast.LENGTH_LONG).show();
        }

        setContentView(R.layout.main);
        Button btn_cont = (Button)findViewById(R.id.btn);
        etxt = (EditText)findViewById(R.id.etxt);
        tv = (TextView) findViewById(R.id.tv);
        btn_cont.setOnClickListener(this);
        tv = (TextView) findViewById(R.id.tv);
    }

    @Override
    public void onClick(View click) {
        txt = etxt.getText().toString();
        Intent intent = new Intent(this, Activity2.class);
        startActivity(intent);
        tv.setText(txt);
    }
    public void onSaveInstanceState(Bundle sis){
        sis.putString("ist arg", "sec arg");
        Toast.makeText(this, "ActivitySaveIns", Toast.LENGTH_LONG).show();
        super.onSaveInstanceState(sis);
    }
}

活性2

public class Activity2 extends Activity implements OnClickListener{

    Button btn_back;
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.act2);
        btn_back = (Button)findViewById(R.id.btn_back);
        btn_back.setOnClickListener(this);
    }

    public void onClick(View v) {
        Intent intent2 = new Intent(this,activity1.class);
        startActivity(intent2);

    }
}

1 个答案:

答案 0 :(得分:0)

这是你的所作所为:

  1. 开始Activity1
  2. 开始Activity2
  3. 启动[{1}}
  4. 的[另一个实例]

    因此,在按下“后退”按钮后[你应该让硬件后退按钮完成工作!],你最终会得到三个活动。

    如果你想保留一个这样的后退按钮,而不是创建一个新的实例,只需调用Activity1,这将关闭当前的活动(并带你回到原来的活动)。