这个问题已被问过很多次了,我在阅读了大约20篇帖子并在我的代码中尝试各种解决方案之后发布了这个问题。
我使用了一个选择器,我还将ListView
的选择模式定义为ListView.CHOICE_MODE_SINGLE
。但没有任何作用。这是我的xml文件。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="3"
tools:context=".MainActivity" >
<ListView
android:id="@+id/listView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/bg_key" />
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" />
</LinearLayout>
以下是上述文件的java代码。
public class MainActivity extends Activity {
ListView listView;
TextView textView;
String array[] = new String[] { "abc", "def", "ghi", "jkl",
"mno", "pqr" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
textView = (TextView) findViewById(R.id.textView);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
getApplicationContext(),
android.R.layout.simple_dropdown_item_1line, array);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view,
int position, long arg3) {
// TODO Auto-generated method stub
view.setSelected(true);
String clicked = array[position];
textView.setText("You clicked " + clicked);
}
});
}
这是存储在drawable文件夹中的bg_key.xml
文件。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/pressed_color" android:state_selected="true"/>
<item android:drawable="@color/default_color"/>
</selector>
单击后,所选行仍不会保持突出显示。它会暂时突出显示,但随后会恢复原始颜色。
请帮忙。
由于
答案 0 :(得分:2)
使用listselector怎么样?!
<listView
android:listSelector="@drawable/listview_selector"/>