-1

我必须开发一个 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();

但是按下后退按钮后我的背景颜色不会留在这里......

4

1 回答 1

0

这很简单”。为了能够知道应该突出显示哪个图像,您需要将此信息存储在某个地方。一个好的做法是使用数据库,但如果您只有此信息要存储,您可以创建共享首选项或其他类型的全局变量之类的东西。然后,当您使用列表视图重新打开活动(或返回)时,您应该告诉列表视图应突出显示哪个项目并突出显示该项目。

于 2013-04-11T07:35:01.423 回答