1

私はこのコードを持っています

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の項目をクリックすると、何も起こらない、クリックできない、またはクリックできない

ここに画像の説明を入力

4

2 に答える 2

3

ビューR.layout.schedule_list_itemの項目をクリックできず、フォーカスできないようにしてみてください。

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

R.layout.schedule_list_itemのいずれかの子ビューがフォーカスを取得できる場合、 OnItemClickListener()が正しく機能しない可能性があります。

于 2012-08-07T12:09:45.193 に答える
0

このコードを event_list.setOnItemClickListener に入力する必要があります

私はそれがあなたの問題を解決すると思います

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

于 2012-08-07T12:12:41.637 に答える