应用程序启动时突出显示 listView 项
Highlighting a listView item when app starts
我想在应用程序运行且菜单首次打开时(无需单击)选择 listView 上的第一项。谁能帮我?
我也希望能够在所选项目的右边框上画一条小垂直线来突出显示它,但是除了更改背景之外我找不到其他方法来突出显示项目...
关于listView的xml:
<ListView
android:id="@+id/slider_list"
android:layout_width="240dp"
android:layout_height="186dp"
android:layout_gravity="start"
android:background="#368ee0"
android:textColor="#ffffff"
android:choiceMode="singleChoice"
android:listSelector="#44444444"
android:divider="#b0e0e6"
android:dividerHeight="1dp" />
编辑 1:
在我的 MainActivity 中,我尝试遵循其中一项建议并在显示内容之前设置项目的背景颜色。相关行是:
private ListView mDrawerList;
mDrawerList = (ListView) findViewById(R.id.slider_list);
rowItems = new ArrayList<RowItem>();//which for instance i use as String url = rowItems.get(position).getPageUrl();
mDrawerList.setAdapter(adapter);
mDrawerList.setOnItemClickListener(new SlideitemListener());
在我尝试这样的事情之后:
((RowItem)mDrawerList.getItemAtPosition(0)).setBackgroundColor(Color.rgb(68, 68, 68));
但是 rowItems 没有 setBackgroundColor 方法。我应该从 listView (mDrawerList) 中获取该项目,但充满了 RowItems。
你可以试试
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long arg3) {
view.setSelected(true);
...
}
}
使用此模式后,您可以使用选择器指定不同的背景。
if (position == selectedListItem)
{
//TODO: set the proper selection color here:
renderer.setBackgroundResource(android.R.color.darker_gray);
}
try this you can just update zeroth position element to always set a different color
我想在应用程序运行且菜单首次打开时(无需单击)选择 listView 上的第一项。谁能帮我? 我也希望能够在所选项目的右边框上画一条小垂直线来突出显示它,但是除了更改背景之外我找不到其他方法来突出显示项目...
关于listView的xml:
<ListView
android:id="@+id/slider_list"
android:layout_width="240dp"
android:layout_height="186dp"
android:layout_gravity="start"
android:background="#368ee0"
android:textColor="#ffffff"
android:choiceMode="singleChoice"
android:listSelector="#44444444"
android:divider="#b0e0e6"
android:dividerHeight="1dp" />
编辑 1:
在我的 MainActivity 中,我尝试遵循其中一项建议并在显示内容之前设置项目的背景颜色。相关行是:
private ListView mDrawerList;
mDrawerList = (ListView) findViewById(R.id.slider_list);
rowItems = new ArrayList<RowItem>();//which for instance i use as String url = rowItems.get(position).getPageUrl();
mDrawerList.setAdapter(adapter);
mDrawerList.setOnItemClickListener(new SlideitemListener());
在我尝试这样的事情之后:
((RowItem)mDrawerList.getItemAtPosition(0)).setBackgroundColor(Color.rgb(68, 68, 68));
但是 rowItems 没有 setBackgroundColor 方法。我应该从 listView (mDrawerList) 中获取该项目,但充满了 RowItems。
你可以试试
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long arg3) {
view.setSelected(true);
...
}
}
使用此模式后,您可以使用选择器指定不同的背景。
if (position == selectedListItem)
{
//TODO: set the proper selection color here:
renderer.setBackgroundResource(android.R.color.darker_gray);
}
try this you can just update zeroth position element to always set a different color