2015-04-03 38 views
-1

我有一个ListView。 我从2个editTexts填充此列表 当我移动活动并返回时,条目再次消失。 我有点理解这是为什么,但不知道如何纠正它。当我移动活动时保持列表条目

ListView lv2 = (ListView) findViewById(R.id.listView2); 
    final SimpleAdapter simpleAdpt = new SimpleAdapter(this, planetsList, android.R.layout.simple_list_item_1, new String[]{"planet"}, new int[]{android.R.id.text1}); 
    planetsList.add(createPlanet("planet", "testme")); 
    lv2.setAdapter(simpleAdpt); 


    button21.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      iinitList(); 
      simpleAdpt.notifyDataSetChanged(); 
      editText5.setText(""); 
      editText6.setText(""); 
     } 
    }); 

} 




    private void iinitList() { 

    String st,str; 
    Double db; 
    if (editText5.getText().toString()!= "" && editText6.getText().toString()!="") { 
     st = editText5.getText().toString(); 
     str = editText6.getText().toString(); 
     db = Double.parseDouble(str); 

      planetsList.add(createPlanet("planet", ""+st+ 
        ": \n" +db+"")); 

    } 

} 
HashMap<String, String> createPlanet(String key, String name) { 
    HashMap<String, String> planet = new HashMap<String, String>(); 
    planet.put(key, name); 
    return planet; 
} 

正如你可以看到我已经添加值的手动名为test也榜上有名,当我移动活动这个停留在列表中,我想如果EDITTEXT条目都留在那里还当我移动爱活动。

+0

,那么你必须将它保存[莫名其妙](http://developer.android.com/guide/topics/data/data-storage。 html)... – Selvin 2015-04-03 13:36:41

回答

0

当您导航到新的或旋转时,可能会损坏活动。这将清除只有该活动引用的任何内容,例如EditTexts。但是,Android提供用于保存要保持在一个方法中调用的东西,你可以在你的活动覆盖一个很好的工具:

@Override 
protected void onSaveInstanceState(Bundle state) { 
    // Put your values in the state bundle here 
} 

@Override 
protected void onCreate(Bundle savedState) { 
    // Load your UI elements as usual 

    if (savedState != null) { 
     // Load your state from the bundle 
    } 
} 

这同捆会的onCreate还给你,你创造一个你UI开始,以便您可以从中重新加载状态。

这是活动是如何工作的一个很好的说明: http://developer.android.com/reference/android/app/Activity.html

+0

正是我在找什么,非常感谢。 – Sean 2015-04-03 16:25:10

相关问题