0

各画像の下に画像の説明を表示する必要がありますが、キャストできないというエラーが表示さGridViewTextViewます:

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;
    }
4

1 に答える 1

1

convertView は、この場合は GridView である親ビューになります。そのため、変換できないというエラーが発生しています。あなたはそれをImageView(そしてそのことについてはTextView)にキャストしようとしています。

ImageView と TextView の両方を cell.xml レイアウト ファイル内にまとめて配置する必要があります。次に、グリッド内の各セルに対して TextView / ImageView の新しいインスタンスを作成する代わりに、 getView() 呼び出し中にその xml ファイルを膨張させて入力します。

これらのトピックをカバーするチュートリアルを次に示します。彼はあなたの特定の例(各セルのテキストと画像)も使用しました。このチュートリアルを完了したら、テキストを画像の下に表示するように少し変更するだけで済みます。

于 2012-06-12T17:44:21.270 に答える