我試圖在網格視圖中顯示一些圖像。我的代碼適用於android 2.2和2.3,但不適用於2.1Android 2.1 gridview不顯示
在android 2.1中,網格總是空的/不可見的。
我使用網格視圖中的代碼是這一個:
gridview = (GridView)findViewById(R.id.level_select);
gridview.setAdapter(new LevelImagesAdapter(this, levelsCount,
maxLevel, listener));
gridview.invalidate();
的LevelImagesAdapter是:
public class LevelImagesAdapter extends BaseAdapter {
private View.OnClickListener listener;
private Context mContext;
private int count;
private int maxLevel;
public LevelImagesAdapter(Context c, int maxLevel, int count, View.OnClickListener listener) {
this.mContext = c;
this.listener = listener;
this.count = count;
this.maxLevel = maxLevel;
}
@Override
public int getCount() {
return count;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Button view;
if (convertView == null) {
view = new Button(mContext);
view.setOnClickListener(listener);
view.setLayoutParams(new GridView.LayoutParams(GridView.LayoutParams.WRAP_CONTENT, GridView.LayoutParams.WRAP_CONTENT));
view.setPadding(5, 5, 5,5);
}
else {
view = (Button) convertView;
}
if (position <= maxLevel) {
view.setBackgroundResource(R.drawable.level_unlock);
view.setText((position + 1) + "");
view.setTextColor(Color.WHITE);
view.setTextSize(16.0f);
}
else {
view.setBackgroundResource(R.drawable.level_lock);
view.setText("");
}
return view;
}
}
據我所知道的,適配器被創建,但getView方法永遠不會被調用。
謝謝!
你試過手動調用notifyDataSetChanged()嗎? – Codeman 2012-07-24 17:55:48
作者:「據我所知,適配器已創建,但getView方法永遠不會被調用。」 - 你在裏面放了一個'Log.d'並運行它並檢查'LogCat'以確保它不被調用?或以某種方式使用調試? – 2012-07-24 18:04:54
是的,我已經把一個Log.v放在方法中,它永遠不會被調用。 – gulyan 2012-07-24 18:49:11