如何让 baseadapter 从 0 或 1 以外的位置开始
How can I get baseadapter to start at a different position than 0 or 1
我有一个底座适配器,它总是从最顶部的位置 0 或 1 开始,但是有什么办法可以让我的底座适配器从位置 5 开始吗?我一直在这里搜索,但没有找到相关信息,这是我的 baseadapter,是的,它连接到 listview,但我知道 listview 开始的位置由 BaseAdapter
控制
public class myadapter extends BaseAdapter {
Context context;
LayoutInflater myiflater;
public myadapter() {
myiflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return 20;
}
@Override
public Object getItem(int position) {
return 5;
}
@Override
public long getItemId(int position) {
return 5;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// all of this is already correct
}
catch (Exception e) {
e.printStackTrace();
}
return convertView;
}
return convertView;
}
}
如您所见,我尝试将起始位置设置为 5,但它不起作用。
对您的 ListView 执行此操作:
mListView.setSelection(5);
setSelection() 通过适配器设置 ListView 的当前位置。你尝试的方式没有意义。对于 getItem() 方法,您应该 return 对象,而不是位置的数值。让我知道是否有效
我有一个底座适配器,它总是从最顶部的位置 0 或 1 开始,但是有什么办法可以让我的底座适配器从位置 5 开始吗?我一直在这里搜索,但没有找到相关信息,这是我的 baseadapter,是的,它连接到 listview,但我知道 listview 开始的位置由 BaseAdapter
控制public class myadapter extends BaseAdapter {
Context context;
LayoutInflater myiflater;
public myadapter() {
myiflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return 20;
}
@Override
public Object getItem(int position) {
return 5;
}
@Override
public long getItemId(int position) {
return 5;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// all of this is already correct
}
catch (Exception e) {
e.printStackTrace();
}
return convertView;
}
return convertView;
}
}
如您所见,我尝试将起始位置设置为 5,但它不起作用。
对您的 ListView 执行此操作:
mListView.setSelection(5);
setSelection() 通过适配器设置 ListView 的当前位置。你尝试的方式没有意义。对于 getItem() 方法,您应该 return 对象,而不是位置的数值。让我知道是否有效