mit Hilfe der grid-Ansicht und Bild-Ansicht, um die Anzeige von einigen Bildern

erstelle ich ein einfaches android-Anwendung, die die Anzeige mehrerer Bilder und auf der ausgewählten das system zeigt im Bild anzeigen .. aber das problem ist, dass das system die Anzeige der id der Bilder als auf das auswählen bestimmter Bild-das system zeigt das Bild im Bild anzeigen .

kann mir jemand helfen um dieses problem zu beheben ??

log cat

12-03 08:57:16.493: E/AndroidRuntime(3126): Caused by: java.lang.ClassCastException: android.widget.ImageView cannot be cast to android.widget.TextView
12-03 08:57:16.493: E/AndroidRuntime(3126):     at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:379)

GridActivity.java

package com.devleb.listviewdemo;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;

public class GridActivity extends Activity implements
        AdapterView.OnItemClickListener {

    private ImageView Selection;
    private static final Integer[] items = { R.drawable.image1,
            R.drawable.image2, R.drawable.image3, R.drawable.image4,
            R.drawable.image5, R.drawable.image6, R.drawable.image4,
            R.drawable.image2 };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_grid);
        Selection = (ImageView) findViewById(R.id.selection);
        GridView grid = (GridView) findViewById(R.id.grid);
        grid.setAdapter(new ArrayAdapter<Integer>(this, R.layout.cell, items));

        grid.setOnItemClickListener(this);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.grid, menu);
        return true;
    }

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        //TODO Auto-generated method stub

        Selection.setImageResource(items[arg2]);
    }

}

activity_grid.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".GridActivity" >

    <ImageView
        android:id="@+id/selection"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <GridView
        android:id="@+id/grid"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:columnWidth="100dip"
        android:gravity="center"
        android:horizontalSpacing="5dip"
        android:numColumns="auto_fit"
        android:stretchMode="columnWidth"
        android:verticalSpacing="40dip" >
    </GridView>

</LinearLayout>

cell.xml

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/imgv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

</ImageView>
  • Versuchen Sie, reinigen Sie das Projekt und überprüfen Sie dann.
  • Gehen Sie zu Projekt-sauber , es immer Arbeit für mich in solchen Situationen
  • GrIsHu, ich versuche es und immer noch der gleiche Fehler
  • Shashank Agarwal ich es probiert habe, und immer noch der gleiche Fehler
  • Sie senden integer-array der adapter nicht die drawable' so erstellen Sie Ihre eigenen adapter...um die Bilder in der grid-Ansicht
  • Schauen Sie sich meine Antwort.
  • Ändern Sie Ihre cell.xml layout-Datei ImageView zu TextView und dann check-out.

InformationsquelleAutor user3006788 | 2013-12-03
Schreibe einen Kommentar