Rus*_*shi 1 android android-emulator android-intent android-layout
我正在开发一个项目,我需要在选择ListView的项目时更改ListView中的文本颜色.
我可以在选择列表项时更改文本的颜色,但几秒钟后,颜色会变回以前的颜色.我希望这个颜色不变,直到我点击另一个列表项.只需看看以下截图:
单击ListView的项目,我可以获得白色的更改颜色文本,但几秒钟后文本将更改回上一个颜色.
我想保持textview的白色,直到我点击ListView的另一个项目.
以下是textview的选择器文件.对于黑色文字:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@android:color/white"/>
<item android:state_focused="true" android:color="@android:color/white"/>
<item android:state_selected="false" android:color="@android:color/black"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
对于红色文字:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@android:color/white"/>
<item android:state_focused="true" android:color="@android:color/white"/>
<item android:state_selected="false" android:color="@color/red"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
您需要将所选项目的位置存储在某处并覆盖getView
适配器,以便在回收视图时正确设置背景.此外,您需要告诉适配器在选择项目时刷新视图.
如果您使用,ArrayAdapter
您可以像这样扩展它:
private class SelectionArrayAdapter extends ArrayAdapter<String> {
private int selectedItem = -1;
public SelectionArrayAdapter(Context context, int resource, String[] objects) {
super(context, resource, objects);
}
public void setSelection(int position) {
selectedItem = position;
notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if(position == selectedItem) {
view.setBackgroundColor(Color.RED);
}
else {
view.setBackgroundColor(Color.TRANSPARENT);
}
return view;
}
}
Run Code Online (Sandbox Code Playgroud)
点击项目时,您只需要调用该setSelection
方法:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
adapter.setSelection(position);
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
631 次 |
最近记录: |