任何人都可以告诉我为什么这对我的LG400f触控手机不起作用,但在模拟器中点击鼠标可以正常工作吗?
代码
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 :(得分:1)
在xml的Listview中检查touchscreenBlocksFocus = true
答案 1 :(得分:0)
感谢回答此问题的人们。
我没有直接重新解决这个问题,但编写了一个有效的变体。
首先我的上一课定义如下: ListContacts扩展活动,代码就像我在原始问题中显示的一样。
我现在已经定义了我的类 ListContacts extends 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();