我为自定义 GridView 项目制作了一个适配器,但显示了错误的颜色。我已经检查过了,但是它将正确的颜色整数传递给适配器,所以我认为错误应该在其中。谢谢您的帮助。
public class Uebersichtadapter extends BaseAdapter {
private Context context;
private ArrayList<Uebersichtliste> liste;
public Uebersichtadapter(Context c, ArrayList<Uebersichtliste> liste) {
context = c;
this.liste = liste;
}
@Override
public int getCount() {
return liste.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return 0;
}
private class ViewHolder {
TextView titel;
TextView underline;
TextView text;
RelativeLayout background;
ImageView bild;
}
@Override
public View getView(int position, View convertView, ViewGroup
parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewHolder holder = null;
if (convertView==null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.uebersichtelement, null);
GridView grid = (GridView)parent;
int size = grid.getColumnWidth();
convertView.setLayoutParams(new GridView.LayoutParams(size,size));
holder.text = (TextView) convertView.findViewById(R.id.textView10);
holder.underline = (TextView) convertView.findViewById(R.id.textView9);
holder.titel = (TextView) convertView.findViewById(R.id.textView8);
holder.background=(RelativeLayout) convertView.findViewById(R.id.uebbackground);
holder.bild=(ImageView) convertView.findViewById(R.id.imageView3);
convertView.setTag(holder);
}
else{
holder = (ViewHolder) convertView.getTag();
}
holder.titel.setText(liste.get(position).getTitel());
holder.underline.setText(liste.get(position).getUnderline());
holder.text.setText(liste.get(position).getText());
Log.e("Test",String.valueOf(liste.get(position).getTextffarbe()));
Log.e("Test",String.valueOf(liste.get(position).getBildfarbe()));
holder.text.setTextColor(liste.get(position).getTextffarbe());
if (String.valueOf(liste.get(position).getBildfarbe()).contains("drawable_border"))holder.background.setBackgroundResource(liste.get(position).getBildfarbe());
else if (String.valueOf(liste.get(position).getBildfarbe()).contains("drawable")) holder.bild.setImageResource(liste.get(position).getBildfarbe());
else holder.background.setBackgroundColor(liste.get(position).getBildfarbe());
return convertView;
}
}
我不知道那里可能有什么问题,但无论如何必须有一些东西,它不能在列表中,也许在布局中:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/uebbackground"
android:layout_width="150dp"
android:layout_height="150dp"
android:padding="5dp">
<ImageView
android:id="@+id/imageView3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp" />
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:gravity="center"
android:singleLine="true"
android:textColor="@android:color/black"
android:textSize="12sp"
android:textStyle="bold" />
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:gravity="center"
android:singleLine="true"
android:textColor="@android:color/darker_gray"
android:textSize="12sp" />
<TextView
android:id="@+id/textView10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:singleLine="true"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold" />
适配器中的数据是:
a.add(new Uebersichtliste("Vorgeschlagenes Element",elemente.get(n).getsymbol(),elemente.get(n).getdeutsch(),hintergrund,1,textfarbe));
hintergund= 类似 R.color.red textfarbe= 类似 R.color.black