Android:Item单击ListView中的Listener,它位于对话框内

时间:2012-08-07 11:53:29

标签: android

我有这个代码

private ListView event_list;
event_list = (ListView) open_event_list.findViewById(R.id.events_list);
loadList(cw.getDate());

“cw”是一个单击的CalendarView,根据你点击的日期会出现一个包含ListView的对话框...只是看下面的图片 内部loadList()方法是

Cursor c = dbHelper.retrieveAllEventsWhere(TABLE_NAME, cwdate);
sched_list = new ArrayList<Schedule>();
Schedule s;
c.moveToFirst();
while(!c.isAfterLast())
{
    s = new Schedule();
    s.setId(c.getInt(c.getColumnIndex("_id")));
    s.setTitle(c.getString(c.getColumnIndex("title")));
    s.setDescription(c.getString(c.getColumnIndex("desc")));
    s.setTime(c.getLong(c.getColumnIndex("time")));
    s.setType(c.getString(c.getColumnIndex("type")));

    if(c.getInt(c.getColumnIndex("alarm")) == 1)
        s.setAlarm(true);
    else
        s.setAlarm(false);
    Log.d("dbcheck", s.toString());
    sched_list.add(s);
    c.moveToNext();
}
dbHelper.close();
Log.d("dbcheck", "==============================");
for(Schedule sc: sched_list)
{
    Log.d("dbcheck", sc.toString());
}
ScheduleAdapter schedListAdapter = new ScheduleAdapter(this, R.layout.schedule_list_item, sched_list);
event_list.setAdapter(schedListAdapter);

event_list.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0, View v, int arg2,
        long arg3) {
    TextView sched_id = (TextView) v.findViewById(R.id.sched_id);

    Toast toast = Toast.makeText(ScheduleActivity.this, sched_id.getText().toString(), Toast.LENGTH_SHORT);
    toast.show();

}
});

所以我的问题是当我点击ListView中的一个项目,它在一个对话框内,它什么都不做,我无法点击或它不可点击没有任何事情发生,因为图片说明

enter image description here

2 个答案:

答案 0 :(得分:3)

尝试制作视图的项目 R.layout.schedule_list_item 不可点击且无法调焦。

android:clickable="false"
android:focusable="false"

如果 R.layout.schedule_list_item 的任何子视图都可以获得焦点,那么 OnItemClickListener()可能无法正常工作。

答案 1 :(得分:0)

  

您应该将此代码输入event_list.setOnItemClickListener

我认为它会解决你的问题

  

((ScheduleAdapter)event_list.getAdapter()).getItem(0);