【问题标题】:highlight the linearlayout background in android突出显示android中的linearlayout背景
【发布时间】:2013-04-11 07:26:49
【问题描述】:

我必须开发一个安卓应用程序。 这是场景:线性布局中有许多图像。选择后,布局应以另一个背景显示。现在效果很好。

现在,我希望当我打开一个新活动并返回这个活动时,最后选择的布局应该仍然是突出显示的布局(具有第二个背景)。

这怎么做???

现在我使用下面的代码在按下时突出显示图像:

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();

但是按下后退按钮后我的背景颜色并没有停留在这里......

【问题讨论】:

    标签: android android-listview sharedpreferences background-color pressed


    【解决方案1】:

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

    【讨论】:

    • 你看不懂什么?你有没有尝试过?
    • 请阅读我更新的问题并为这些问题提供解决方案。在这里我使用了 sharedpreferences。但我没有得到正确的解决方案..我的代码有什么问题。请给我一些想法???
    猜你喜欢
    • 2018-12-23
    • 2015-11-21
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 2013-12-03
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多