2015-05-07 110 views
0

我想添加gridView並自定義它的適配器。GridView的第一個項目不顯示

但是第一項沒有出現,並且項目點擊偵聽器也不起作用。 myImage

我的代碼不正確?

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    TextView text; 
    if (convertView == null) { 
     convertView = mLayoutInflater.inflate(R.layout.layout_mission_private_item, parent, false); 
     convertView.setLayoutParams(new AbsListView.LayoutParams(parent.getWidth()/3, parent.getHeight()/2)); 
     text = (TextView) convertView.findViewById(R.id.tvContent); 
     convertView.setTag(text); 
    } else { 
     text = (TextView) convertView.getTag(); 
    } 
    text.setText(mData.get(position).first); 
    if (mData.get(position).second) 
     text.setBackgroundColor(Color.GREEN); 
    return convertView; 
} 

編輯:完整的源

public class MissionPrivateGvAdapter extends BaseAdapter { 

private LayoutInflater mLayoutInflater; 
public ArrayList<Pair<String, Boolean>> mData; 

public MissionPrivateGvAdapter(LayoutInflater inflater, ArrayList<Pair<String, Boolean>> data) { 
    mLayoutInflater = inflater; 
    mData = data; 
} 

@Override 
public int getCount() { 

    return mData.size(); 
} 

@Override 
public Object getItem(int position) { 
    return mData.get(position).first; 
} 

@Override 
public long getItemId(int position) { 

    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    TextView text; 
    if (convertView == null) { 
     convertView = mLayoutInflater.inflate(R.layout.layout_mission_private_item, parent, false); 
     convertView.setLayoutParams(new AbsListView.LayoutParams(parent.getWidth()/3, parent.getHeight()/2)); 
     text = (TextView) convertView.findViewById(R.id.tvContent); 
     convertView.setTag(text); 
    } else { 
     text = (TextView) convertView.getTag(); 
    } 
    text.setText(mData.get(position).first); 
    if (mData.get(position).second) 
     text.setBackgroundColor(Color.GREEN); 
    return convertView; 
} 

}

+0

你是什麼意思的mData.get(position).first?併發布整個代碼 –

+0

@KarthikaPB我將它添加 – iroiroys

回答

1

寬度和父視圖的高度是零當第一次調用getView method.Maybe可以獲取屏幕內容的寬度和高度來設置它們的值。

+0

您能否詳細說明您的答案,並添加關於您提供的解決方案的更多描述? – abarisone

+0

謝謝。你節省我的時間! :) – iroiroys

+0

convertView.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.MATCH_PARENT)); – BinGoBinBin