【发布时间】:2013-06-11 16:46:39
【问题描述】:
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
【问题讨论】:
-
您想通过单击行中的任意位置来选择项目?
-
是的,目前它只接受直接点击文本。我想通过单击该行中的任意位置从列表中选择一个项目。
-
也许您的问题来自您的适配器在 getView() 方法中?
标签: android