3

我的应用程序中有一个 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();

 }
4

3 回答 3

0

在 Android 3.0 之前,您必须这样做的唯一机制是让选定的视图获得焦点。尝试类似:

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

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

于 2012-06-25T15:26:02.557 回答
0

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

getListView().setItemChecked(0, true);

下一个问题是什么?!

于 2012-07-23T13:02:01.947 回答
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);

 }
于 2012-06-25T15:27:45.937 回答