Android ListView onClick在emulator中工作,但在触摸电话上不工作
有人能告诉我为什么这在我的LG400f触摸电话上不起作用,但在模拟器中点击鼠标就可以了 代码Android ListView onClick在emulator中工作,但在触摸电话上不工作,android,Android,有人能告诉我为什么这在我的LG400f触摸电话上不起作用,但在模拟器中点击鼠标就可以了 代码 ListView listView = (ListView) findViewById(R.id.listContactsList); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_contacts, R.id.listContactsView, values); list
ListView listView = (ListView) findViewById(R.id.listContactsList);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_contacts, R.id.listContactsView, values);
listView.setAdapter(adapter);
listView.setClickable(true);
listView.setFocusable(true);
listView.setFocusableInTouchMode(true);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Object selection = (Object) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), selection.toString(), Toast.LENGTH_LONG).show();
// Toast is triggered with mouse click in emulator but not touch in phone
ListView ListView=(ListView)findViewById(R.id.listContactsList);
ArrayAdapter=新的ArrayAdapter(此,R.layout.list_contacts,R.id.listContacts视图,值);
setAdapter(适配器);
listView.setClickable(真);
setFocusable(true);
setFocusableInTouchMode(true);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
对象选择=(对象)父对象。getItemAtPosition(位置);
Toast.makeText(getApplicationContext(),selection.toString(),Toast.LENGTH\u LONG.show();
//Toast在emulator中通过鼠标单击触发,但在手机中不触摸
XML
<ListView
android:id="@+id/listContactsList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
tools:context=".ListContacts" />
感谢回答此问题的人员 我并没有直接重新解决这个问题,而是编写了一个变体 首先,我以前的类是这样定义的:ListContacts扩展了Activity,代码与我在原始问题中显示的一样 我现在已经定义了我的类ListContacts扩展了ListActivity,并更改了代码(其工作原理如下): 首先从onCreate()中删除setContentView(R.layout.xxxx)和XML文件中的textview 代码:
this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values));
ListView listView = getListView();
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Object selection = (Object) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), selection.toString(), Toast.LENGTH_LONG).show();
this.setListAdapter(新的ArrayAdapter(this,android.R.layout.simple_list_item_1,android.R.id.text1,values));
ListView ListView=getListView();
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
对象选择=(对象)父对象。getItemAtPosition(位置);
Toast.makeText(getApplicationContext(),selection.toString(),Toast.LENGTH\u LONG.show();
在xml中的Listview上检查touchscreenBlocksFocus=true尝试将行Listview.setOnItemClickListener(新AdapterView.OnItemClickListener()更改为“Listview.setOnItemClickListener(新OnItemClickListener(){}”因此,在设备上,selection
为null
或onItemClick
未运行?无法获取此listView。setOnItemClickListener(新的OnItemClickListener(){}为了使用JadeSam,我修改了代码以显示Toast以简化,Toast不显示在Touch上。您是否尝试过使用onItemClickListener而不是OnItemClicks?我从未使用过touchscreenBlocksFocus
。在任何标准情况下,都必须有一个更简单的解决方案。另外,请关注最近未被接受的问题回答5年以上。谢谢!