2

ディスプレイ製品用にGridviewを含むアプリを作成しているため、グリッドでアイテムを選択すると、戻り値はnullpointerExceptionです.listviewを使用すると問題ありませんが、Gridviewではエラーになります。

grid_data.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

        title = ((TextView) view.findViewById(R.id.title)).getText()
                .toString();

        categoriid = ((TextView) view.findViewById(R.id.categoryid))
                .getText().toString();

        String productid = ((TextView) view
                .findViewById(R.id.productid)).getText().toString();

    }
});

アダプタ クラス:

public View getView(int position, View convertView, ViewGroup parent) {



View vi = convertView;
if (vi  == null)


//LayoutInflater inflater = ((Activity) activity).getLayoutInflater();
vi = inflater.inflate(R.layout.full_image, parent, false);

TextView title = (TextView) vi.findViewById(R.id.txt_title); // title
TextView     maxprice = (TextView) vi.findViewById(R.id.txt_maxprice); // artist
TextView minprice = (TextView) vi.findViewById(R.id.txt_minprice); // artist
TextView productid = (TextView) vi.findViewById(R.id.productid); // artist
TextView categoryid = (TextView) vi.findViewById(R.id.categoryid); // artist
ImageView    thumb_image = (ImageView) vi
        .findViewById(R.id.full_image_view); // thumb
                                                // image

HashMap<String, String> song = new HashMap<String, String>();
song = data.get(position);
title.setText(song.get(Service.Key_Title));
productid.setText(song.get("Productid"));
categoryid.setText(song.get("Categoryid"));
maxprice.setText(song.get("MaxPrice"));
minprice.setText(song.get("MinPrice"));

imageLoader.DisplayImage(song.get("picPath"), thumb_image);
return vi;

}

full_image.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/full_image_view"
        android:layout_width="80sp"
        android:layout_height="80sp"
        android:background="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/txt_title"
        android:layout_width="80sp"
        android:layout_height="wrap_content"
        android:text="title" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/txt_maxprice"
            android:layout_width="70sp"
            android:layout_height="wrap_content"
            android:text="maxprice" />

        <ImageView
            android:id="@+id/image_view"
            android:layout_width="10sp"
            android:layout_height="10sp"
            android:background="@drawable/ic_launcher" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/txt_minprice"
            android:layout_width="70sp"
            android:layout_height="wrap_content"
            android:text="minprice" />

        <ImageView
            android:id="@+id/image_view2"
            android:layout_width="10sp"
            android:layout_height="10sp"
            android:background="@drawable/ic_launcher" />
    </LinearLayout>

    <TextView
        android:id="@+id/productid"
        android:layout_width="1sp"
        android:layout_height="1sp"
        android:visibility="gone" />

    <TextView
        android:id="@+id/categoryid"
        android:layout_width="1sp"
        android:layout_height="1sp"
        android:visibility="gone" />

</LinearLayout>

タイトルのグリッドビュー値またはその他のデータをクリックして変数に保存する問題を解決する方法

4

1 に答える 1

1

タイプミスはありませんか?getView メソッドでは、

TextView title = (TextView) vi.findViewById(R.id.txt_title); // title

しかし、あなたの OnItemClickListener では、何か他のものを探しています

title = ((TextView) view.findViewById(R.id.title)).getText().toString()

見る?

于 2013-09-23T19:38:16.327 に答える