我必须开发一个 android 应用程序。这是场景:线性布局中有许多图像。选择后,布局应以另一个背景显示。现在效果很好。
现在,我希望当我打开一个新活动并返回这个活动时,最后选择的布局应该仍然是突出显示的布局(具有第二个背景)。
如何才能做到这一点 ???
现在我使用下面的代码在按下时突出显示图像:
LinearLayout ar = new LinearLayout(this);
ar.setOrientation(LinearLayout.VERTICAL);
ar.setPadding(3, 3, 3, 3);
ar.setLayoutParams(artiLayoutParams);
ar.setGravity(Gravity.CENTER);
ar.setBackgroundColor(Color.parseColor("#666666"));
ar.setBackgroundDrawable(getResources().getDrawable(R.drawable.list_selector));
ar.setId(position);
position++;
ar.setOnClickListener(mArticleClick);
编辑:
private OnClickListener mArticleClick = new OnClickListener()
{
@Override
public void onClick ( View v )
{
int object = v.getId();
v.setSelected(true);
String articletitle = Appscontent.Sub_arraylist.get(object).toString();
Intent in = new Intent(MainActivity.this, SubCate.class);
in.putExtra("Title", articletitle);
startActivity(in);
}
};
在这里我必须单击一个项目意味着它进入下一个活动。之后我点击后退按钮意味着所选项目保持在另一个背景下突出显示。之后我选择了另一个项目意味着它进入下一个活动。现在我必须单击后退按钮意味着这些项目仅以背景突出显示....但之前的项目也突出显示....
我希望需要像这样的o/p:
最后选择的项目仅在单击后退按钮后突出显示...请帮助我...我该怎么做..
编辑:
我已经声明 int prevPosition = -1; 全球...
之后我在这里保存了值:
ar = new LinearLayout(this);
ar.setOrientation(LinearLayout.VERTICAL);
ar.setPadding(3, 3, 3, 3);
ar.setLayoutParams(artiLayoutParams);
ar.setGravity(Gravity.CENTER);
ar.setBackgroundColor(Color.parseColor("#666666"));
ar.setBackgroundDrawable(getResources().getDrawable(R.drawable.list_selector));
ar.setId(position);
position++;
ar.setOnClickListener(mArticleClick);
SharedPreferences preferences = getSharedPreferences(SPF_NAME, android.content.Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putLong("POSITION", prevPosition);
editor.commit();
在 Onclick 方法中:
private OnClickListener mArticleClick = new OnClickListener()
{
@Override
public void onClick ( View v )
{
int object = v.getId();
SharedPreferences preferences = getSharedPreferences(SPF_NAME, android.content.Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putLong("POSITION", -1);
editor.commit();
但是按下后退按钮后我的背景颜色不会留在这里......