0

listview複数の選択肢がある があります。各項目にはtextview「MORE」という言葉があります。テキストビューをクリックすると、次のページに製品の詳細が表示されます。

リストビューの onitemclicklistenerpr_id = tx.getText().toString();でこれを行いました。これは、製品txID を持つリスト内のテキスト ビューでありpr_id、インテントを通じて次のページに送信する製品 ID です。

more.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub

                    Intent i1 = new Intent(Product_List.this,
                            Product_View.class);
                    i1.putExtra("productid", pr_id);

                    Log.i("pid", pr_id);

                    startActivity(i1);

                }
            });`

すべてが正常に動作しますが、問題は、複数選択があり、ユーザーがlistview1 番目、2 番目、3 番目の順に 3 つのアイテムを選択し、1 番目のアイテムの「MORE」ボタンをクリックしたときです。

「MORE」ボタンをクリックすると、最初の項目の詳細が表示されます。ただし、リストの 3 番目の項目を選択したため、代わりにこれらの詳細が表示されます。つまり、選択した 1 番目の項目ではなく、最後に選択した項目がビューを保持します。

どうすればこの問題を克服できますか?

4

1 に答える 1

0

ListViewAdapterリスト項目のビューを作成するときは、 setTag()on "more"-TextView を使用しpr_idてそれに追加します。moreのリスナー呼び出しでgetTag()正しい ID を取得します。

于 2013-08-10T08:50:48.163 に答える