我想在android中显示自动清单。例如,我可以有 4 个带有未选中复选框的项目列表。
5秒后。延迟我想检查第一项,然后转到第二项。在 20 秒结束时。我应该一个一个地检查所有 4 个复选框。
知道我应该如何继续这样做吗?我可以在 ..right 上使用带有复选框 opeion 的列表视图?
我是一个 .net 程序员,这对我来说是新的体验,所以任何评论/建议都会受到赞赏。
我想在android中显示自动清单。例如,我可以有 4 个带有未选中复选框的项目列表。
5秒后。延迟我想检查第一项,然后转到第二项。在 20 秒结束时。我应该一个一个地检查所有 4 个复选框。
知道我应该如何继续这样做吗?我可以在 ..right 上使用带有复选框 opeion 的列表视图?
我是一个 .net 程序员,这对我来说是新的体验,所以任何评论/建议都会受到赞赏。
这是我刚刚编写的一个基本示例:
public class AutoChecker extends Activity {
private CheckBox checkbox1;
private CheckBox checkbox2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
checkbox1 = (CheckBox) findViewById(R.id.checkbox_1);
checkbox2 = (CheckBox) findViewById(R.id.checkbox_2);
new CheckerAsync(AutoChecker.this).execute(checkbox1, checkbox2);
}
private class CheckerAsync extends AsyncTask<CheckBox, CheckBox, Void>{
private Activity mActivity;
private CheckerAsync(Activity activity) {
mActivity = activity;
}
@Override
protected Void doInBackground(final CheckBox... checkboxes) {
try {
for(int i = 0, j = checkboxes.length; i < j; i++ ){
Thread.sleep(5000);
publishProgress(checkboxes[i]);
}
} catch (InterruptedException e) {}
return null;
}
@Override
public void onProgressUpdate(final CheckBox... checkboxes){
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
checkboxes[0].setChecked(true);
}
});
}
}
}
这是 XML 布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<CheckBox
android:id="@+id/checkbox_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Checkbox 1"
/>
<CheckBox
android:id="@+id/checkbox_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Checkbox 2"
/>
</LinearLayout>
它使用了一个扩展类,AsyncTask
它允许您以易于使用/理解的方式使用线程。这个类的执行方式很简单:
new CheckerAsync(AutoChecker.this).execute(checkbox1, checkbox2);
您可以根据需要添加任意数量的复选框。例如:
new CheckerAsync(AutoChecker.this).execute(checkbox1, checkbox2, checkbox4, checkbox3);
顺便说一句,我不知道你为什么要这样做。但是,如果是出于测试目的,您最好看一下检测框架。
对于延迟的自动检查,您应该使用 AsyncTask,就像您可以在 Android 主 UI 线程中修改内容的线程一样,例如检查复选框。
http://developer.android.com/resources/articles/painless-threading.html
http://www.xoriant.com/blog/mobile-application-development/android-async-task.html
http://developer.android.com/reference/android/os/AsyncTask.html
复选框可以是列表视图的一部分,但不是必须的。您也可以将它们一一添加到具有垂直方向的 LinearLayout 中。