Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的线性布局只闪现背景色,而不是在Android中持久化_Java_Android_Android Studio - Fatal编程技术网

Java 我的线性布局只闪现背景色,而不是在Android中持久化

Java 我的线性布局只闪现背景色,而不是在Android中持久化,java,android,android-studio,Java,Android,Android Studio,我有一个可点击的线性布局列表的回收视图。一旦被选中,我想改变背景颜色,但我很难做到这一点。使用我现在的代码,选定的linearlayout只会闪烁一种颜色,然后恢复为白色/透明。 如何使其在选定后颜色保持不变 xml: 谢谢!如果你需要更多信息,请告诉我 (这是什么)关于LinearLayout set LinearLayout.setSelected的onClick方法(true) 如果已将clicklistener设置为LinearLayout,请使用以下代码段: @Override p

我有一个可点击的线性布局列表的回收视图。一旦被选中,我想改变背景颜色,但我很难做到这一点。使用我现在的代码,选定的linearlayout只会闪烁一种颜色,然后恢复为白色/透明。 如何使其在选定后颜色保持不变

xml:

谢谢!如果你需要更多信息,请告诉我


(这是什么)

关于LinearLayout set LinearLayout.setSelected的onClick方法(true)

如果已将clicklistener设置为LinearLayout,请使用以下代码段:

 @Override
 public void onClick(View view) {
      view.setSelected(true)
     //Your code
 }

谢谢因此,这确实对项目进行了着色,但有没有办法强制一次只选择其中一个项目?因为如果我单击第二个布局,它们都是彩色的,并且我只希望一次选择其中一个。如果当前单击的视图不等于先前选择的视图,则必须维护先前选择的视图,并调用setSelected(false)。上一个视图第一次将为空。因此,检查null并调用setSelected(false)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--  Active Row-->
<item android:state_selected="true" android:state_focused="false"
    android:state_pressed="false" android:drawable="@color/colorAccent" />
<!--  Pressed Row -->
<item android:state_pressed="true" android:drawable="@color/colorPrimaryDark" /> />
private final View.OnClickListener mOnClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            DummyContent.DummyItem item = (DummyContent.DummyItem) view.getTag();
            if (mTwoPane) {
                Bundle arguments = new Bundle();
                arguments.putString(ItemDetailFragment.ARG_ITEM_ID, item.id);
                ItemDetailFragment fragment = new ItemDetailFragment();
                fragment.setArguments(arguments);
                mParentActivity.getSupportFragmentManager().beginTransaction()
                        .replace(R.id.item_detail_container, fragment)
                        .commit();
            } else {
 @Override
 public void onClick(View view) {
      view.setSelected(true)
     //Your code
 }