突出显示ListView项而不触摸它

时间:2012-06-25 15:16:32

标签: java android android-layout android-listview

我的应用程序中有一个listView我想突出显示一个listitem而不触及它。我希望第一个项目始终突出显示。我该怎么做呢?

以下是我的listview的代码:

修改

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.listmenu);

        menuList = (ListView) findViewById(R.id.list1);
    menuList.setAdapter(new ArrayAdapter<String>(this,R.id.list_content, heading));
    menuList.setSelection(1);
    View v = menuList.getSelectedView();
v.requestFocus();

 }

3 个答案:

答案 0 :(得分:0)

在Android 3.0之前,您必须执行此操作的唯一机制是让所选视图成为焦点。尝试类似:

menuList.setSelection(1);
View v = menuList.getSelectedView().requestFocus();

您也可以尝试requstFocusFromTouch()。在Android 3.0及更高版本中,为此添加了已激活状态,因此如果您定位的是较新版本,则可以在相应的视图中调用setActivated()

答案 1 :(得分:0)

你可以尝试

ArrayAdapter<String> adapter;

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.listmenu);

    menuList = (ListView) findViewById(R.id.list1);
    adapter = new ArrayAdapter<String>(this,R.id.list_content, heading);
    menuList.setAdapter(adapter);
    menuList.setSelection(1);

    adapter.getView(0, null, menuList).setFocused(true);

 }

答案 2 :(得分:0)

到目前为止最简单的方法:

getListView().setItemChecked(0, true);

下一个问题是什么?!