我需要在每张图片下显示图片说明,但是我收到错误,我无法将GridView
投放到TextView
:
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<GridView
android:id="@+id/main_gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="2"
android:padding="10dp"
android:verticalSpacing="30dp" />
<TextView
android:id="@+id/tvIconDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp" />
</LinearLayout>
代码:
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
TextView textView;
if (convertView == null) {
textView = new TextView(mContext);
imageView = new ImageView(mContext);
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
//imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
} else {
imageView = (ImageView) convertView;
textView = (TextView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
textView.setText(thumbDesc[position]);
return imageView;
}
答案 0 :(得分:1)
convertView将成为您的父View,在本例中是GridView。这就是为什么你得到无法转换错误。您正在尝试将其强制转换为ImageView(以及TextView)。
您应该将ImageView和TextView放在cell.xml布局文件中。然后在getView()调用期间膨胀并填充该xml文件,而不是为网格中的每个单元格创建TextView / ImageView的新实例。
Here is a tutorial涵盖了这些主题。他甚至使用了您的具体示例(每个单元格中的文本和图像)。完成本教程后,您只需稍微修改一下即可将文本放在图像下方(如果您希望它出现的话)。