我有一个的ListView
在我的应用程序。
我实施 OnItemClickListener()
打开文本菜单
项目被点击时。
但是,当我点击一排,吐司
不会出现。
请帮助,
我的code:
mySqlHelper dbHelper =新mySqlHelper(本);
SQLiteDatabase dbRead = dbHelper.getReadableDatabase();
补栏= SpinBulan.getSelectedItemPosition();
tahun =的Integer.parseInt(ThnTransaksi.getText()的toString());
日历MYCAL =新的GregorianCalendar(tahun,补篮,1);
hariBulan = mycal.getActualMaximum(Calendar.DAY_OF_MONTH);
bulanTrans =补栏+ 1;
字符串dapatId;
INT id_tgl,cariSampai;
光标Cari_id = dbRead.rawQuery(从m_transfer选择_id,其中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那里_id'之间+ id_tgl +和+ cariSampai +',NULL);
startManagingCursor(CariTgl);
适配器=新SimpleCursorAdapter(
Transfer.this,
R.layout.data_tanggal,
CariTgl,
新的String [] {tgl_transfer,stts_transfer},
新的INT [] {R.id.textListTanggal,R.id.textStatusTanggal});
dataTanggal.setAdapter(适配器);
dataTanggal.setSelected(真正的);
dataTanggal.setOnItemClickListener(科);
和 onItemClickListener()
:
私人AdapterView.OnItemClickListener科=新AdapterView.OnItemClickListener(){
公共无效onItemClick(适配器视图<>为arg0,查看ARG1,INT ARG2,长ARG3){
Toast.makeText(getApplicationContext(),选择+ ARG2,Toast.LENGTH_SHORT).show();
}
};
解决方案
由于正在实施自定义适配器
,您的充气布局必须落实安卓:可聚焦=假
在你的元素或机器人:在您的主要布局descendantFocusability =blocksDescendants
来避免触发因素中的任何监听器内部列表视图的(你不用想)
I have a ListView
in my app.
I implemented OnItemClickListener()
to open a ContextMenu
when an item is clicked.
But, when i click a row, Toast
does not appear.
Help Please,
My Code :
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);
and 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();
}
};
解决方案
Since you are implementing a custom adapter
, your inflated layout must implement android:focusable="false"
in your elements or android:descendantFocusability="blocksDescendants"
on your main layout to avoid to trigger any listener of the elements inside of the listview (which you dont want to)