[英]Why does my Android custom adapter style random rows?
我有一個簡單的自定義適配器,用於顯示度數列表。 我正在嘗試添加一種方法來使列表中的子標題具有相似的內容。 每行都有一個標題和描述,所以我要做的是將描述設置為null的行膨脹時,它會更改行的樣式(隱藏描述並使標題居中)。 我遇到的問題是將樣式應用於隨機行,而不是僅將其應用於具有空值的樣式(隨機行的標題將居中,而其他隨機行的描述將被隱藏)我的getView:
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if(v == null) {
LayoutInflater inflater = LayoutInflater.from(mContext);
v = inflater.inflate(R.layout.links_list, null);
}
TextView tvTitle = (TextView)v.findViewById(R.id.txtTitle);
TextView tvDesc = (TextView)v.findViewById(R.id.txtDesc);
if(mainList.get(position) instanceof Program) {
Program row = (Program) mainList.get(position);
if(row.getTitle() != null && row.getType() == null) {
//this condition should style just the ones with null type, but style random rows instead
tvTitle.setText(row.getTitle());
tvTitle.setGravity(Gravity.CENTER);
tvDesc.setVisibility(View.GONE);
} else {
if(row.getTitle() != null) {
tvTitle.setText(row.getTitle());
}
if(row.getType() != null) {
tvDesc.setText(row.getType());
}
}
}
return v;
}
所以我的問題是,為什么這種樣式會隨機排列行而不是我告訴它的行?
if(mainList.get(position) instanceof Program) {
Program row = (Program) mainList.get(position);
if(row.getTitle() != null && row.getType() == null) {
//this condition should style just the ones with null type, but style random rows instead
tvTitle.setVisibility(View.VISIBLE);
tvTitle.setText(row.getTitle());
tvTitle.setGravity(Gravity.CENTER);
tvDesc.setVisibility(View.GONE);
} else {
tvTitle.setVisibility(View.GONE);
tvTitle.setGravity(Gravity.LEFT);
tvDesc.setVisibility(View.VISIBLE);
if(row.getTitle() != null) {
tvTitle.setText(row.getTitle());
}
if(row.getType() != null) {
tvDesc.setText(row.getType());
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.