1

私はこのListViewのセットアップを持っています:

        ListView listView = getListView();
        listView.setTextFilterEnabled(true);

        listView.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> arg0, View arg1,
                    int arg2, long id) {

                //

                Intent i = new Intent(getApplicationContext(), Rate.class);
                startActivity(i);

            }
        });

        setListAdapter(new ArrayAdapter<String>(Items.this, R.layout.list,
                items));

ご覧のとおり、標準の ListView です。各行には、リストの「アイテム」が入力された単一の TextView があります。私はそれを MySQL データベースから取り込み、JSON ループを介して出力しています。

単一の名前で行をクリックし、その名前を取得して Rate.class アクティビティに文字列として渡すことができるようにしたいだけです。コードでこれを行うにはどうすればよいですか?

4

3 に答える 3

2

インテントに putExtra を追加します (以下を参照)。アクティビティのメンバーとしてリスト 'items' があると仮定しています。引数 arg2 は基本的に、リスト内でクリックされた項目のインデックスであり、'items' リストから名前を取得するために使用できます。

        public void onItemClick(AdapterView<?> arg0, View arg1,
                int arg2, long id) {

            //

            Intent i = new Intent(getApplicationContext(), Rate.class);
            i.putExtra("name", items.get(arg2));
            startActivity(i);

        }
于 2012-06-19T22:51:16.943 に答える
0

関数に渡すための配列アダプター インスタンスを作成するだけでなく、特定の配列アダプター インスタンスを作成することもできます。OnItemClick()関数の int arg2 は、ユーザーが選択した配列アダプターのインデックスです。配列アダプターからビューを取得し、テキスト ビューから getText() を取得できます。

于 2012-06-19T22:47:08.470 に答える
0

onItemClick に渡されるものの 1 つは、クリックされたビューです。

ビューを適切なタイプにキャストし、getText()それを呼び出します。例えば:

final String text = ((TextView)view).getText();
于 2012-06-19T22:52:56.090 に答える