0
    public void onClick(View arg0) {
        final Dialog dialog = new Dialog(Hero.this);
        ListView list = new ListView(Hero.this);

        final ArrayList<Spell> spells = new ArrayList<Spell>();
        for (int i = 0; i < MainActivity.charSpells.size(); i++){
            if (MainActivity.charSpells.get(i).getType() == Spell.SPELL){
                spells.add(MainActivity.charSpells.get(i));
            }
        }


        list.setAdapter(new ArrayAdapter<Spell>(Hero.this, R.layout.row, spells));
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(list);
        dialog.setCanceledOnTouchOutside(true);
        dialog.show();

        list.setOnItemClickListener(new OnItemClickListener()
                {
                    @Override
                    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                        spell1.setText(spells.get(arg2).getSc());
                        MainActivity.spells[0] = spells.get(arg2);
                        dialog.dismiss();
                    }
          });

        }

ListView を含むこのダイアログを作成しましたが、アイテムはテキストをクリックしたときにのみ選択でき、本来あるべきように行全体では選択できません。誰かが私の間違いを見つけることができますか?

編集:

OK、解決しました。ビルダーを使用してダイアログを作成しました: https://stackoverflow.com/a/6157258/2468567

4

2 に答える 2

1

それが起こっている場合、TextView リソースを高さ/幅の両方で wrap_content に設定する必要があると想定しています。これは、実際のテキストがある場所だけがタッチ可能な領域であることを意味します。

XML の値を fill_parent (または固定サイズなど) に変更してみてください。次に、android:gravity を調整して、テキストがビュー内のどこに配置されるかを調整します。

要約:

android:layout_width="fill_parent"
android:layout_height="fill_parent
android:gravity="center"
于 2013-06-11T20:37:09.987 に答える
0

TextView list.xml で幅を画面よりも大きくしてみてください

android:layout_width="1000dp"
于 2021-01-02T13:28:22.407 に答える