- setNextFocusLeftId(int id)
- setNextFocusRightId(int id)
- setNextFocusUpId(int id)
- setNextFocusDownId(int id)
2、键盘移动listview和gridview里面的item时,可能会出现移动两次的情况,为了避免它:我们设置一个布尔型标志位flag
- private boolean flag;
- @Override
- public boolean onKey(View v, int keyCode, KeyEvent event) {
- ...
- ...
- this.flag=true;
- }
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position,long id) {
- ...
- ...
- this.flag=false;
- }
另外listview和gridview的setSelection(int position)方法也会起到作用,eg:
- gridView.setSelection(0);
- gridView.setFocusableInTouchMode(true);
- gridView.requestFocus();
3、如果在一个groupview中加载了多个gridview,而且这些gridvie的xml源自同一个layout.xml,假设layout.xml中的gridview的id为"@+id/gridview”,那么下面代码
- gridview.setNextFocusLeftId(R.id.gridview)
是错误的,多个gridview同时使用同一个id会引起混乱,为此你必须在代买中重新为gridview设置id,eg:
- gridview.setId(id);