Im пытается сделать активность, которая имеет listview элемента телеги в левой части, а затем список из категорий на центральной стороне, затем gridview продуктов на rightside, который я хочу сделать следующим образом: 1. щелчок элемента в категории listview будет фильтровать продукты на gridview 2. нажатие на элемент gridview будет выполнять другую функцию, например, сохранить в таблицы и показать ее в списке на левой сторонеИспользование listview и gridview в 1 действии, gridview не будет отвечать на элемент, нажмите
как-то я не могу заставить работать onclick, его не ошибка, но ничего не произошло onclick. почему это? если я использую только 1 listview, его работа. это чисто мой код неправильный или мы не можем поместить несколько gridview/listview в 1 активность? OnClick фрагмент кода:
/* LIST BILL */
final ArrayList<Bill> list_bill = getListBill();
final ListView listview_bill = (ListView) findViewById(R.id.order_listing);
listview_bill.setAdapter(new BillListAdapter(this, list_bill));
listview_bill.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Bill mBill = list_bill.get(position);
int bill_id = mBill.getID();
Log.d(TAG, "click bill ID:"+bill_id);
}
});
private ArrayList getListBill()
{
SQLiteDatabase mydatabase = openOrCreateDatabase("posDb",MODE_PRIVATE,null);
Cursor resultSet = mydatabase.rawQuery("SELECT * FROM bills",null);
ArrayList<Bill> results = new ArrayList<Bill>();
if (resultSet.moveToFirst()) {
do {
Bill billsData = new Bill();
billsData.setID(resultSet.getInt(0));
billsData.set_bill_no(resultSet.getString(1));
billsData.set_type(resultSet.getString(2));
billsData.set_table(resultSet.getString(3));
billsData.set_qty(resultSet.getInt(4));
billsData.set_amount(resultSet.getString(5));
billsData.set_status(resultSet.getString(6));
//put them into results
results.add(billsData);
} while (resultSet.moveToNext());
}
return results;
}
код адаптера (3 из них имеет аналогичный переходник, поэтому я включить один из них)
public class BillListAdapter extends BaseAdapter {
private ArrayList<Bill> listData;
private LayoutInflater layoutInflater;
public BillListAdapter(Context aContext, ArrayList<Bill> listData) {
this.listData = listData;
layoutInflater = LayoutInflater.from(aContext);
}
@Override
public int getCount() {
return listData.size();
}
@Override
public Object getItem(int position) {
return listData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.list_bill_layout, null);
holder = new ViewHolder();
//holder.txtBillNo = (TextView) convertView.findViewById(R.id.txtBillId);
holder.txtBillNo = (TextView) convertView.findViewById(R.id.txtBillNo);
holder.txtBillType = (TextView) convertView.findViewById(R.id.txtBillType);
holder.txtBillTable = (TextView) convertView.findViewById(R.id.txtBillTable);
holder.txtBillQty = (TextView) convertView.findViewById(R.id.txtBillQty);
holder.txtBillAmount = (TextView) convertView.findViewById(R.id.txtBillAmount);
holder.txtBillStatus = (TextView) convertView.findViewById(R.id.txtBillStatus);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
//holder.txtBillId.setText(listData.get(position).getID() +"");
holder.txtBillNo.setText(listData.get(position).get_bill_no());
holder.txtBillType.setText(listData.get(position).get_type());
holder.txtBillTable.setText(listData.get(position).get_table());
//holder.txtBillQty.setText(listData.get(position).get_qty());
holder.txtBillAmount.setText(listData.get(position).get_amount());
holder.txtBillStatus.setText(listData.get(position).get_status());
return convertView;
}
static class ViewHolder {
//TextView txtBillId;
TextView txtBillNo;
TextView txtBillType;
TextView txtBillTable;
TextView txtBillQty;
TextView txtBillAmount;
TextView txtBillStatus;
}
}
im используя gridview, кстати, вместо этого мы используем setOnItemClickListener? если мы определяем щелчок на getView, как получить идентификатор из другого списка? который мне нужно пройти id от щелчка пункта на listview – Gabriel
Это отлично работает :) спасибо! – Gabriel