2012-11-19 50 views
0

谁能告诉我为什么这在我的LG400f触摸手机上不起作用,但在模拟器中单击鼠标可以正常工作吗?ListView onClick在模拟器中工作,但不在触摸手机上

代码

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 

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" /> 
+0

尝试改变线listView.setOnItemClickListener(新AdapterView.OnItemClickListener()为 “listView.setOnItemClickListener(新OnItemClickListener(){}” –

+0

所以在设备上,'selection' 'null'或'onItemClick'没有运行? – Sam

+0

无法得到这个listView.setOnItemClickListener(new OnItemClickListener(){}去工作Jade – Mike

回答

0

谢谢谁回答这个问题的人。

我还没有完全重新直接解决了这个问题,但编码了一个有效的变体。

首先,我以前的课程是这样定义的:ListContacts扩展活动和代码是我在原始问题中显示的。

我现在已经定义了我的课ListContacts扩展ListActivity和改变了代码(工作)是这样的:

首先删除的setContentView(R.layout.xxxx)从的onCreate()和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(); 
相关问题