我有2個光標,光標1和光標2.一個光標適配器已用於顯示光標1的結果。但是,我想爲每5個光標2插入光標2的項目項目。我怎麼能做到這一點?Android在光標適配器之間插入新行
目前我已經爲遊標1的列表視圖擴展了一個CursorAdapter。現在我想爲光標1的每個項目插入光標2項。
我看看MatrixCursor和MergeCursor,他們會合並並添加行,但我想插入之間。任何想法我們如何做到這一點?
我有2個光標,光標1和光標2.一個光標適配器已用於顯示光標1的結果。但是,我想爲每5個光標2插入光標2的項目項目。我怎麼能做到這一點?Android在光標適配器之間插入新行
目前我已經爲遊標1的列表視圖擴展了一個CursorAdapter。現在我想爲光標1的每個項目插入光標2項。
我看看MatrixCursor和MergeCursor,他們會合並並添加行,但我想插入之間。任何想法我們如何做到這一點?
從你的解釋中不難理解你想達到什麼。 您應該擴展BaseAdapter類,因爲它更容易適應您的需求。 這應該適合你。
public class CursorAdapterTwo extends BaseAdapter{
private final Context context;
LayoutInflater layoutInflater;
String[] dataTypes;
Cursor cursor1;
Cursor cursor2;
public CursorAdapterTwo(Context context, Cursor cursor1, Cursor cursor2) {
this.context = context;
this.cursor1 = cursor1;
this.cursor2 = cursor2;
layoutInflater = LayoutInflater.from(context);
}
static class ViewHolder {
TextView textView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
cursor1.moveToPosition(position);
if((position % 5) == 0)
{
cursor2.moveToPosition(position/5);
}
if (convertView == null) {
convertView = layoutInflater.inflate(layout.list_item, parent, false);
viewHolder = new ViewHolder();
viewHolder.textView = (TextView) convertView.findViewById(id.text_view);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
String columnType = dataTypes[position];
viewHolder.textView.setText("New text");
return convertView;
}
@Override
public int getCount() {
if (cursor1 != null) {
return cursor1.getCount() + cursor2.getCount();
} else {
return 0;
}
}
@Override
public Object getItem(int position) {
if (cursor1 != null) {
cursor1.moveToPosition(position);
return cursor1;
} else {
return null;
}
}
@Override
public long getItemId(int position) {
return position;
}
}
getCount不是光標1和2的總和嗎?或者也許cursor1.count +(cursor1.count/5)? – bryan 2015-02-08 03:29:48
我想你的意思是你想要cursor1中的1項來自cursor1的5個項目。是對的嗎 ? – vovahost 2015-02-07 22:00:30
對於光標1的每5個項目,是的,我想從光標2插入1個項目。 – 2015-02-08 03:00:05