Код вашего getView()
метода - беспорядок, метод должен быть таким, как этот:
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) ctx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.stacktest3_row, null);
}
final mapObject mo = items.get(position);
if (mo != null) {
ImageView imv = (ImageView) v.findViewById(R.id.selected);
TextView one = (TextView) v.findViewById(R.id.mapname);
TextView two = (TextView) v.findViewById(R.id.map_contains);
TextView three = (TextView) v.findViewById(R.id.map_size);
if (one != null) {
one.setText("" + mo.getMapName());
}
if (two != null) {
two.setText("" + mo.getMapContains());
}
if (three != null) {
three.setText("Size: " + mo.getMapSize() + "MB POI: "
+ mo.getMapContainsPoi() + "");
}
if (imv != null) {
imv.setImageDrawable(mo.getImage());
} else {
imv.setImageDrawable(v.getResources().getDrawable(
R.drawable.cross));
}
}
return v;
}
Если вы хотите прослушивать щелчок строки списка, вам придется реализовать либо метод onListItemClick(ListView l, View v, int position, long id)
, если вы расширяете ListActivity
, либо установить setOnItemClickListener()
для вашего элемента ListView
, если вы расширяете Activity
. Тогда в методе onItemClick()
:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
mapObject item = l.getItemAtPosition(position);
showDetails(item, context); //see what context you can use
}
затем в кнопке выбора:
select.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//If you want to change the image then put your new image(or drawable or what ever) or id in the ITEM mapObject that you pass to the method showDetails() then call notifyDataSetChanged() on your adapter object
alertDialog.dismiss();
}
});