在处理Android TV ListView的适配器中,可以使用以下方法记录先前选定的项目并使其重复使用。
1.在适配器类中,添加一个变量来存储最近选中的项目。
public class MyAdapter extends BaseAdapter {
private int lastSelectedPosition = -1;
...
2.在getView方法中,添加以下代码以标记先前选定的项目。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);
}
TextView textView = view.findViewById(R.id.title_text);
textView.setText(dataList.get(position));
// Check if this item was last selected
if (lastSelectedPosition == position) {
view.requestFocus();
}
// Handle item click
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lastSelectedPosition = position;
view.requestFocus();
notifyDataSetChanged();
// Handle item click here
}
});
return view;
}
3.在适配器类中添加以下方法以获取最近选中的项目位置。
public int getLastSelectedPosition() {
return lastSelectedPosition;
}
4.在Activity或Fragment中,使用以下代码保存并恢复最近选中的位置。
// Save last selected position
int lastSelectedPosition = adapter.getLastSelectedPosition();
// Restore last selected position
if (lastSelectedPosition >= 0) {
listView.setSelection(lastSelectedPosition);
}
通过以上步骤,Android TV ListView将会成功记录之前选中的项目并重复使用。