私はいくつかのリスト項目レイアウトを使用していますが、項目レイアウトにはいくつかの画像を入れたいViewstubがあります。
私の目的は、最初に ViewStub を見つけて、個人的なレイアウトを設定し、それで遊ぶことです。ただし、一部の ViewStub が見つかりません。
public class TJAdapter extends CursorAdapter {
....
public void bindView(View view, Context context, Cursor cursor) {
View item = view;
ViewStub contentstub = (ViewStub)item.findViewById(R.id.content_stub);
if (contentstub == null){
LOG.error("TJ,contentstub is null");
} else {
LOG.error("TJ,contentstub is not null");
contentstub.setLayoutResource(R.layout.icon_image);
View iconImage = contentstub.inflate();
}
....
}
public View newView(Context context, Cursor cursor, ViewGroup parent) {
final View view = mInflater.inflate(R.layout.list_item, parent, false);
bindView(view, context, cursor);
}
}
ログ出力は次のようになります。
TJ,bindView is called
TJ,contentstub is not null
TJ,bindView is called
TJ,contentstub is null
TJ,bindView is called
TJ,contentstub is not null
TJ,bindView is called
TJ,contentstub is not null
TJ,bindView is called
TJ,contentstub is null
TJ,bindView is called
TJ,contentstub is not null
私はそれに多くの時間を費やしましたが、なぜこれが起こるのか分かりません。
体が助けてくれる?
================================================== ===============
ブラディブラが示唆したように、今ではiconImageを見つけることができます。しかし、次のアイテムが影響を受ける理由がよくわかりません。リストアイテムを押すことができなくなりました。応答しませんでした。
ImageButton iconImage = null;
ViewStub contentstub = (ViewStub)item.findViewById(R.id.content_stub);
if (contentstub == null){
LOG.error("TJ,contentstub is null");
iconImage = (ImageButton)item.findViewById(R.id.icon_image);
} else {
LOG.error("TJ,contentstub is not null");
contentstub.setLayoutResource(R.layout.list_item_icon_image);
View image = contentstub.inflate();
iconImage = (ImageButton)image.findViewById(R.id.icon_image);
}
if (iconImage == null) {
LOG.error("TJ,iconImage is null");
} else {
LOG.error("TJ, iconImage is not null");
}