public class ImageAndTextListAdapter extends ArrayAdapter<ImageAndText> {
// new method
private ListView listView;
private AsyncImageLoader asyncImageLoader;
private ImageAndText imageAndText;
//constructor
public ImageAndTextListAdapter(Activity activity, List<ImageAndText> imageAndTexts) {
super(activity, 0, imageAndTexts);
asyncImageLoader = new AsyncImageLoader();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Activity activity = (Activity) getContext();
////////////////////////////////////////////////////////////////////////////////////////////////
// Load the image and set it on the ImageView
//new method
// Inflate the views from XML
View rowView = convertView;
ViewCache viewCache;
if (rowView == null) {
LayoutInflater inflater = activity.getLayoutInflater();
rowView = inflater.inflate(R.layout.image_and_text_row, null);
viewCache = new ViewCache(rowView);
rowView.setTag(viewCache);
} else {
viewCache = (ViewCache) rowView.getTag();
}
imageAndText = getItem(position);
Button btn2=(Button) findViewById(R.id.button1);
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//...........
}
});
このアダプターはListView用で、listviewの行データを表すimage_and_text_row.xmlを取ります。クリックリスナーをbtn2に設定すると、プログラムがクラッシュしました。リスナーが削除された場合、プログラムはうまく動作します。リストビューのアダプターの中にボタンクリックリスナーの問題があります
なぜアダプターはコード内にボタンクリックリスナーを持つことができないのですか?
あなたのlogcatとは何ですか? –
Jason、あなたは絶対にアダプターにクリックリスナーを持つことができます。あなたの問題はあなたのlogcatにあるはずです。それもここに投稿するのに役立つかもしれません。 –
例外はありますか? –