У меня есть список с каждой строкой, имеющей флажок, изображение и вид текста
мои требования 1. флажок может быть отмечен и снят, и для каждого щелчка на флажок для каждой строки выполните функцию 1: Это я могсделать, определив onitem clicklistenr для флажка в getview baseadapter
- Если выбран какой-либо другой элемент, кроме флажка, я хочу интерпретировать это как щелчок строки и выполнить функцию 2. В настоящее время яопределили прослушиватель onitemclick для textview, и он работает
Поэтому мой вопрос заключается в том, чтобы правильно сделать это, определить прослушиватель onitemclick для всех остальных элементов и заставить его вызывать функцию 2?
Или есть способ, которым я могу добиться выбора строки для моего списка.Пожалуйста, смотрите мой код ниже.Я могу дать любую дополнительную информацию, если это необходимо
list.java
public class ScanListActivity extends BaseActivity {
static Button scanlist;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.scan_list);
List<ScannedProduct> productList = new ArrayList<ScannedProduct>();
productList = getProductList();
final ListView lv = (ListView) findViewById(R.id.list);
scanlist = (Button) findViewById(R.id.addtowishlist);
scanlist.setEnabled(false);
lv.setAdapter(new ProductListAdapter(this, productList, scanlist));
}
адаптер; getview
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
final int pos = position;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.product_list_row, null);
holder = new ViewHolder();
holder.text1 = (TextView) convertView.findViewById(R.id.productid);
holder.text1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.i("List",""+pos);
}
});
holder.text2 = (TextView) convertView.findViewById(R.id.price);
holder.image = (ImageView) convertView
.findViewById(R.id.productimageid);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text1.setText(productList.get(position).getTitle());
holder.text2.setText(productList.get(position).getPrice().toString());
if(productList.get(position).getSmallImage() != null){
byte [] bb= (productList.get(position).getSmallImage());
holder.image.setImageBitmap(BitmapFactory.decodeByteArray(bb, 0, bb.length));
}
else{
holder.image.setImageBitmap(null);
holder.image.setBackgroundResource(R.drawable.highlight_disabled);
}
// holder.image.setImageBitmap(Utils.loadBitmap(productList.get(position).getSmallImage()));
final CheckBox check = (CheckBox) convertView
.findViewById(R.id.checkbox);
check.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (check.isChecked()) {
ProductListAdapter.count++;
} else {
ProductListAdapter.count--;
}
if (ProductListAdapter.count == 0) {
//showOrHideButton.setClickable(false);
//showOrHideButton.setVisibility(View.GONE);
showOrHideButton.setEnabled(false);
} else {
//showOrHideButton.setVisibility(View.VISIBLE);
showOrHideButton.setEnabled(true);
}
}
});
return convertView;
}
static class ViewHolder {
TextView text1;
ImageView image;
TextView text2;
}