Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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
Android 更改焦点上列表项的颜色_Android_Listview - Fatal编程技术网

Android 更改焦点上列表项的颜色

Android 更改焦点上列表项的颜色,android,listview,Android,Listview,我正面临列表视图的问题,当列表视图处于焦点时,我想单独更改列表项中文本视图的文本颜色,并在右角列表项中显示图像 下面是我使用过的代码 在主类的Xml中 <ListView android:id="@+id/listViewMenu" android:layout_width="match_parent" android:layout_heigh

我正面临列表视图的问题,当列表视图处于焦点时,我想单独更改列表项中文本视图的文本颜色,并在右角列表项中显示图像

下面是我使用过的代码

在主类的Xml中

              <ListView
                    android:id="@+id/listViewMenu"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:cacheColorHint="@null"
                    android:divider="@color/titlebar_divider"
                    android:dividerHeight="1dp"
                    android:listSelector="@android:color/transparent" >
                </ListView>
对焦时,我可以在
ListView
中更改
Listitem
的颜色,但当按下它时,它会工作

在Selector.xml中


谢谢

在Res文件夹中 添加颜色文件夹并以颜色显示 添加选择器 我可以这样使用它

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" 
        android:color="@color/bluetxt"></item>
    <item android:color="@color/whiteColor"></item> 
</selector>


这里blutxt和whitecolor是我自己的自定义颜色,你可以根据自己的需要使用它

你只想更改文本字段的颜色,而不是整个列表视图?尝试将充气布局背景更改为@drawable/Selector。我想你说的是哪种布局是可行的。@UsmanKurd,是的,我只想更改颜色textview,但不想更改listview
@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        if(convertView==null)
            vi = mLayoutInflater.inflate(R.layout.menu_list_row, null);

        TextView mTextView = (TextView)vi.findViewById(R.id.txtMenuNames);
        mImageView = (ImageView)vi.findViewById(R.id.imgMenuImages);
        imgFocusImage = (ImageView)vi.findViewById(R.id.imgFocusImage);
        imgFocusImage.setFocusableInTouchMode(false);

        mImageView.setImageResource(mThumbIds[position]);
        mTextView.setText(mIndicators[position]);

        mTextView.setOnFocusChangeListener(new OnFocusChangeListener(){

            public void onFocusChange(View v, boolean hasFocus)
            {
                v.setBackgroundColor(hasFocus ? Color.GRAY : Color.BLACK);
            }
        });

        imgFocusImage.setOnFocusChangeListener(new OnFocusChangeListener() {

            @Override
            public void onFocusChange(View v, boolean hasFocus) {

                if(hasFocus)
                    v.setVisibility(View.VISIBLE);
            }
        });

        return vi;
    }
<item android:color="#FCBC04" android:state_focused="true"/>
<!-- focused -->
<item android:color="#FCBC04" android:state_focused="true" android:state_pressed="true"/>
<!-- focused and pressed -->
<item android:color="#FCBC04" android:state_pressed="true"/>
<!-- pressed -->
<item android:color="#D8D8D8"/>
<!-- default -->
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" 
        android:color="@color/bluetxt"></item>
    <item android:color="@color/whiteColor"></item> 
</selector>