これは私のリストビューを表示する方法ですが、この種のメソッドを使用して表示すると、重複データが表示されます。これは私の "CondimentDescription"が1つ以上のデータを持つからだと私は思う。以下は、私のコードです:クエリで左外部結合を使用しているときに重複データを持つリスト
public List<OrderList> getOrderList() {
List<OrderList> OrderList = new ArrayList<OrderList>();
OrderList list = new OrderList();
try {
String selectQuery = "select t2.Id,t2.ProductCode,t2.Price,t2.Qty,t3.Description,t4.condimentDescription from TempCS t1 \n" +
"left outer join TempCSDetail t2 on t1.DocNo=t2.Docno\n" +
"left outer join mProduct t3 on t2.ProductCode=t3.Code \n" +
"left outer join TempCSCondiment t4 on t2.SeqNo=t4.SeqNo"+
"where t1.DocNo=" + TablePageDocNo + "\n";
SQLiteDatabase db1 = db.getReadableDatabase();
Cursor cursor = db1.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
list.setProductCode(cursor.getString(cursor.getColumnIndex("ProductCode")));
list.setPrice(Double.parseDouble(cursor.getString(cursor.getColumnIndex("Price"))));
list.setQty(cursor.getString(cursor.getColumnIndex("Qty")));
list.setDescription(cursor.getString(cursor.getColumnIndex("Description")));
list.set_ID(Integer.parseInt(cursor.getString(cursor.getColumnIndex("ID"))));
//this will more than 1 row in my Sqlite database
list.setCondimentDescription(cursor.getString(cursor.getColumnIndex("CondimentDescription")));
OrderList.add(list);
} while (cursor.moveToNext());
}
}catch(Exception e){
}
return OrderList;
}
アダプタ一覧
public class OrderListAdapter extends BaseAdapter {
LayoutInflater mInflater;
public OrderListAdapter() {
mInflater = LayoutInflater.from(ListFragmentActivity.this);
}
@Override
public int getCount() {
return orderlist.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.listproduct1, null);
}
final TextView _ID = (TextView) convertView.findViewById(R.id.proID);
_ID.setText("" + orderlist.get(position).get_ID());
final String proID = _ID.getText().toString();
final TextView ProductCode = (TextView) convertView.findViewById(R.id.productcode);
ProductCode.setText("" + orderlist.get(position).getProductCode());
final TextView Description = (TextView) convertView.findViewById(R.id.description);
Description.setText("" + orderlist.get(position).getDescription());
final TextView Price = (TextView) convertView.findViewById(R.id.price);
Price.setText("" + String.format("%.2f",orderlist.get(position).getPrice()));
final Double price= Double.valueOf(Price.getText().toString());
final TextView Qty = (TextView) convertView.findViewById(R.id.qty);
Qty.setText("" + orderlist.get(position).getQty());
final TextView condimentDescription=(TextView)convertView.findViewById(R.id.condimentDescription);
condimentDescription.setText("" + orderlist.get(position).getCondimentDescription());
notifyDataSetChanged();
return convertView;
}
}
これをチェックしてください[リンク](http://stackoverflow.com/a/38323180/6799753) –
@VishrutPatilこのリンクは仕事ですが、私が望むものではありません。 –
[重複を削除する方法リスト?](http://stackoverflow.com/questions/2849450/how-to-remove-duplicates-from-a-list) –