2012-08-07 53 views
1

我有這樣的代碼安卓:項目點擊監聽ListView的是裏面一個對話框

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

回答

3

嘗試使視圖R.layout.schedule_list_item的項目無法點擊,而不是可獲得焦點。

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

如果R.layout.schedule_list_item的任何子視圖可以獲取焦點,然後OnItemClickListener()可能無法正常工作。

+0

是是我加入schedule_list_item一個對某些按鈕警報和一個刪除..所以我sh; d使schedule_list_item的佈局可點擊和可重點爲false?這是你說的嗎? – lemoncodes 2012-08-07 12:23:05

+1

不是整個schedule_list_item佈局,只是使焦點屬性爲該視圖中按鈕的false(僅當您不想處理該按鈕的onClick事件) – Midhu 2012-08-07 12:40:47

+0

但我必須設置列表中的按鈕可點擊...專門刪除 – lemoncodes 2012-08-07 12:45:15

0

Uou應該輸入驗證碼到event_list.setOnItemClickListener

我認爲這將解決您的問題

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

+0

我不明白你的意思?你能否詳細說明一下? – lemoncodes 2012-08-07 13:29:53

+0

爲什麼它是零?我真的不明白你的點 – lemoncodes 2012-08-07 14:09:14

+0

它不需要與getitem(0)同步..當執行另一個操作像dele..etc這將幫助你... – QuokMoon 2012-08-07 16:13:38