2

よくわからないことを解決しようとしています。単一のリストビューアイテムが選択されているときに、単一のアイテムの詳細にパラメーター呼び出し「説明」を表示したいのですが、「説明」は単一のリストビューアイテムに表示されるべきではありません。問題がどこにあるかはわかっていますが、どのように解決すればよいかわかりません。よろしくお願いします。間違いがある私のコードは次のとおりです。

// Adding menuItems to ListView
    ListAdapter adapter = new SimpleAdapter(this, menuItems,
                    R.layout.list_item, new String[] { KEY_TITLE, KEY_DESC, KEY_COUNTRY_NAME,
                            KEY_VENUE_NAME, KEY_START_TIME }, new int[] {
                            R.id.title,R.id.description, R.id.countryName, R.id.venueName,
                            R.id.startTime });

            setListAdapter(adapter);

            // selecting single ListView item
            ListView lv = getListView();

            lv.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    // getting values from selected ListItem
                    String title = ((TextView) view.findViewById(R.id.title))
                            .getText().toString();
                    String description = ((TextView) view
                            .findViewById(R.id.description)).getText().toString();

                    // Starting new intent
                    Intent in = new Intent(getApplicationContext(),
                            SingleMenuItemActivity.class);
                    in.putExtra(KEY_TITLE, title);
                    in.putExtra(KEY_DESC, description);

                    startActivity(in);

                }

ご覧のとおり、KEY_DESCは私が話しているものですが、in.putextra(KEY_DESC, description);を使用するには、別のクラスからin.getStringExtraを使用するために。ただし、説明は ListAdapter で宣言された R.id.description フィールドから取得リストビュー項目にも表示されます。リストビュー項目の説明から削除したいのですが、引き続きin.putExtra(KEY_DESC, ??)メソッドを使用できます。私は何をすべきか知っていますか?

4

1 に答える 1

1

説明をメイン リストに表示したくない場合は、説明を表す UI 要素を res/layout/list-item.xml から削除します (おそらく id=@description の TextView になります)。

その場合、説明は表示されませんが、SimpleAdapter を通じて利用できます。

于 2013-07-24T04:41:53.790 に答える