应用程序启动时突出显示listView项

时间:2015-06-24 12:07:17

标签: android listview android-listview selecteditem listselectionlistener

我希望在应用运行并且首次打开菜单时选择我的listView上的第一个项目(无需点击)。谁能帮我? 我还希望能够在所选项目的右边框上绘制一条小垂直线以突出显示它,但我无法找到另一种方法来突出显示除了更改背景之外的项目...

enter image description here

关于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填充。

2 个答案:

答案 0 :(得分:2)

 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 

答案 1 :(得分:1)

您可以尝试的是

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);
        ...
    }
}

使用此模式后,您可以使用选择器指定不同的背景。