移动时保留列表条目 activity
Keeping list entries when I move activity
我有一个 ListView。
我从 2 个 editTexts 填充这个列表
当我移动 activity 并返回它时,条目又消失了。
我有点理解这是为什么,但不知道如何纠正它。
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 的值,当我移动 activity 时,它会保留在列表中,如果 editText 条目也保留在那里,我会很高兴我搬活动了
当您导航到新活动或旋转活动时,活动可能会被销毁。这将清除仅由 activity 引用的任何内容,例如您的 EditText。但是,Android 提供了一个很好的实用程序,用于保存您想要保留在调用方法中的内容,您可以在 activity:
中覆盖它
@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
我有一个 ListView。 我从 2 个 editTexts 填充这个列表 当我移动 activity 并返回它时,条目又消失了。 我有点理解这是为什么,但不知道如何纠正它。
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 的值,当我移动 activity 时,它会保留在列表中,如果 editText 条目也保留在那里,我会很高兴我搬活动了
当您导航到新活动或旋转活动时,活动可能会被销毁。这将清除仅由 activity 引用的任何内容,例如您的 EditText。但是,Android 提供了一个很好的实用程序,用于保存您想要保留在调用方法中的内容,您可以在 activity:
中覆盖它@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