经过 1 1/2 小时的搜索,我找到了一个实际上在 stackoverflow 上运行的列表视图示例。至少对我来说,谷歌教程没有这样的运气,人们在上面提到的大部分内容显然早已被无法编译的内容所取代。无论如何,我得到了它的工作。然后我添加了我的代码以允许我的蓝牙答题器工作。没有喜悦。
我需要控制平板电脑而不触摸它。它将在玻璃后面,我想要一个 ESC 代码在我的按钮或列表中前进,另一个按钮来执行突出显示的内容。我的应用程序的一个简单的两个按钮界面。该应用程序正在运行,但我想添加一个功能,该功能要求用户从不确定的位置列表(用户提供)中进行选择。所以看起来列表是个好主意。该列表有效,但是当我将蓝牙拦截器代码放入时,它甚至不会手动滚动。经过三个小时试图找出一个列表是否是解决我的问题的正确方法后,我正在寻求帮助。
package com.example.listview2;
import android.app.Instrumentation;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.ArrayAdapter;
public class HelloListView extends ListActivity {
String[] listItems = {"item 1", "item 2 ", "list","item 1", "item 2 ", "list","item 1", "item 2 ", "list", "android", "item 3", "foobar", "bar", };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.temp);
setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, listItems));
}
@Override
public boolean dispatchKeyEvent(KeyEvent ke){
int keyCode = ke.getKeyCode();
if(ke.getAction() == KeyEvent.ACTION_DOWN){
switch (keyCode)
{
case 59:
return true;
case 19:
new Thread(new Runnable() {
@Override
public void run() {
new Instrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_TAB);
}
}).start();
return true;
case 20:
new Thread(new Runnable() {
@Override
public void run() {
new Instrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);
}
}).start();
return true;
}
}
else if(ke.getAction() == KeyEvent.ACTION_UP){
switch (keyCode){
case 59:
case 19:
case 20:
return true;
}
}
return super.dispatchKeyEvent(ke);
}
}
XML 是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ListView android:id="@+id/ListView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>