2015-05-07 108 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