onSaveInstanceState not working

前端 未结 3 981
轮回少年
轮回少年 2021-01-07 09:16

I know this question has already been asked a lot, but I don\'t get why onSaveInstanceState isn\'t working for me. It\'s probably something stupid, but I hope some of you ca

3条回答
  •  悲&欢浪女
    2021-01-07 09:19

    public class Main extends Activity implements OnClickListener, OnKeyListener {
    
    EditText textitem;
    Button buttonadd;
    ListView listitems;
    
    ArrayList ToDo;
    ArrayAdapter AA;
    ArrayList MyArrayList;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        textitem = (EditText) findViewById(R.id.textitem);
        buttonadd = (Button) findViewById(R.id.buttonadd);
        listitems = (ListView) findViewById(R.id.listitems);
    
        buttonadd.setOnClickListener(this);
        textitem.setOnKeyListener(this);
    
        if(savedInstanceState!=null)
         {
           ToDo = savedInstanceState.getStringArrayList("MyArrayList");
         }
        else
         {
           ToDo = new ArrayList();
         }
        AA = new ArrayAdapter(this,
                android.R.layout.simple_list_item_1, ToDo);
        listitems.setAdapter(AA);
    
    }
    
    @Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
        savedInstanceState.putStringArrayList("MyArrayList", ToDo);
        super.onSaveInstanceState(savedInstanceState);
    }
    
    
    private void addItem(String item) {
        if (item.length() > 0) {
            this.ToDo.add(item);
            this.AA.notifyDataSetChanged();
            this.textitem.setText("");
        }
    }
    
    public void onClick(View v) {
        if (v == this.buttonadd) {
            this.addItem(this.textitem.getText().toString());
        }
    }
    
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN
                && keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
            this.addItem(this.textitem.getText().toString());
        }
        return false;
    }
    

    Hope this will help you. Vipul

提交回复
热议问题