这是活动
public void onListItemClick(ListView parent, View v,int position, long id) {
String str;
if (nRowSelected>=0) {
View row=parent.getChildAt(nRowSelected);
if (row!=null) {
row.setBackgroundColor(0xFFFFFFFF);
}
}
nRowSelected=position;
v.setBackgroundColor(Color.GRAY);
}//onListItemClick
这是我的列表视图
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="425dp"
>
</ListView>
我需要突出单一选择。我选择/聚焦行号1.但是当我滚动时,焦点不止一个。行也集中在第8行
这是捕获
和
如何解决这个问题?
答案 0 :(得分:2)
你正在努力克服适配器回收行布局......你需要扩展当前的适配器并覆盖getView()
以突出显示正确的行(并且只有正确的行)。
在最基本的层面上,它看起来像:
public View getView(...) {
View view = super.getView(...);
if(position == mRowSelected) {
view.setBackgroundColor(Color.GRAY);
}
else { // You must use a default case to "un-highlight" the reused layout
view.setBackgroundColor(0xFFFFFFFF);
}
return view;
}
答案 1 :(得分:2)
将其添加到xml:
android:cacheColorHint="#00000000"
答案 2 :(得分:0)
使用以下::
替换您的xml
代码
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="425dp"
android:cacheColorHint="#00000000">
</ListView>
答案 3 :(得分:0)
嗨请看下面的代码可能会帮助它是单选选择示例,按照此工作正常。
public class List17 extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Use the built-in layout for showing a list item with a single
// line of text whose background is changes when activated.
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_activated_1, mStrings));
getListView().setTextFilterEnabled(true);
// Tell the list view to show one checked/activated item at a time.
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
// Start with first item activated.
// Make the newly clicked item the currently selected one.
getListView().setItemChecked(0, true);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// Make the newly clicked item the currently selected one.
getListView().setItemChecked(position, true);
}
private String[] mStrings = Cheeses.sCheeseStrings;
}
这是列表活动,列表视图或列表活动无关紧要。