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 的对话框,但是当您单击文本时只能选择项目,而不是像应该的那样在整行上选择项目。谁能找到我的错误?

编辑:

好的,解决了,我使用了一个构建器来制作对话框: https ://stackoverflow.com/a/6157258/2468567

4

2 回答 2

1

如果发生这种情况,我假设您的 TextView 资源必须为高度/宽度设置为 wrap_content,这意味着唯一可触摸的区域是实际文本所在的位置。

尝试将它们在 XML 中的值更改为 fill_parent (或固定大小或您正在做的任何事情)。然后调整 android:gravity 以调整文本在 View 中的放置位置。

回顾:

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 回答