我有几个活动,其中一些有listviews。当点击那些列表视图中的项目时,背景和文本颜色将突出显示,并且下一个活动将启动。我有自定义后退按钮可以回到以前的活动。我想知道是否有一种方法可以保留先前按下的listview中背景和文本颜色的亮点,当我点击后退按钮时。这里是一个示例代码:记住选定的背景和文字颜色突出显示活动
public class Act1 extends Activity {
//code to create arrays and adapters, populate listview and so on
ListView listParams = (ListView) findViewById(R.id.lvParams);
listParams.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent,View viewClicked, int position, long id) {
viewClicked.setSelected(true);
SelectedParam = String.valueOf(parent.getItemAtPosition(position));
Editor editor = sharedpreferences.edit();
editor.putString("SelectedParam", SelectedParam);
editor.commit();
Intent goToAct2= new Intent(getApplicationContext(),Act2.class);
startActivity(goToAct2);
}
});
我有xml选择器来更改所选项目的颜色(此处未显示...)。现在,当我在第二个活动,我想回去的第一个活动,所以我连接功能的GoBack的按钮:
goBack(View V){
Intent goToAct1 = new Intent(Act2.this, Act1.class);
startActivity(goToAct1);
}
当我回来活性1,我想我的列表视图来记住以前的选择并在列表视图中突出显示它。现在,当我在手机上使用导航键时,突出部分被记住了......有没有办法模仿这种情况。或者也许有一个更简单的方法。请帮助:)
是的,您可以在返回活动时更改listitem布局的背景颜色。您已经存储了listitem的值。存储ID将非常有益。 – Aakash 2015-04-06 01:35:02
'startActivityForResult(Intent intent,int requestCode)'可以解决你的问题。 – li2 2015-04-06 01:48:43
您的第一个活动已存储在** [back stack](http://developer.android.com/guide/components/tasks-and-back-stack.html)**中,所以当您想要导航回activity1从activity2开始,你只需要完成activity2,如果你按下了actionbar的后退按钮或其他与你的** goback按钮相关的函数,你可以重写onNavigateUp()方法** – li2 2015-04-06 01:59:50