我的应用中有一个ListView
。
我在点击某个项目时实施OnItemClickListener()
以打开ContextMenu
。
但是,当我点击一行时,Toast
不会出现。
请帮助,
我的代码:
mySqlHelper dbHelper = new mySqlHelper(this);
SQLiteDatabase dbRead = dbHelper.getReadableDatabase();
bulan = SpinBulan.getSelectedItemPosition();
tahun = Integer.parseInt(ThnTransaksi.getText().toString());
Calendar mycal = new GregorianCalendar(tahun, bulan, 1);
hariBulan = mycal.getActualMaximum(Calendar.DAY_OF_MONTH);
bulanTrans = bulan+1;
String dapatId;
int id_tgl , cariSampai;
Cursor Cari_id = dbRead.rawQuery("select _id from m_transfer where tgl_transfer = '1/"+bulanTrans+"/"+tahun+"'",null);
Cari_id.moveToFirst();
dapatId = Cari_id.getString(0);
id_tgl = Integer.parseInt(dapatId);
cariSampai = id_tgl + hariBulan - 1;
CariTgl = dbRead.rawQuery("select * from m_transfer where _id BETWEEN '"+id_tgl+"' and '"+cariSampai+"'",null);
startManagingCursor(CariTgl);
adapter = new SimpleCursorAdapter(
Transfer.this,
R.layout.data_tanggal,
CariTgl,
new String[] {"tgl_transfer","stts_transfer"},
new int[] {R.id.textListTanggal, R.id.textStatusTanggal});
dataTanggal.setAdapter(adapter);
dataTanggal.setSelected(true);
dataTanggal.setOnItemClickListener(ke);
和onItemClickListener()
:
private AdapterView.OnItemClickListener ke = new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Toast.makeText(getApplicationContext(), "selected"+arg2, Toast.LENGTH_SHORT).show();
}
};
答案 0 :(得分:0)
您可能需要在listview项的xml文件中设置 focusable =“false”属性。 这可能有用
答案 1 :(得分:0)
您需要使用OnItemSelectedListener而不是OnItemClicklistener
答案 2 :(得分:0)
由于您正在实施custom adapter
,因此您的虚增布局必须在元素中实现android:focusable="false"
或在主布局上实现android:descendantFocusability="blocksDescendants"
,以避免触发listview内部元素的任何侦听器(你不想要)
答案 3 :(得分:0)
在您的充气机布局的textview中添加:
android:focusable="false"
android:focusableInTouchMode="false"
并且在充气机的父布局中,即在充气机的相对布局中添加:
android:descendantFocusability="blocksDescendants"