0

Androidで自動チェックリストを表示したい。たとえば、チェックボックスがオフになっている項目のリストを 4 つ持つことができます。

5秒後 最初の項目を確認してから、2 番目の項目に進みたいと思います。20秒の終わりに。4 つのチェック ボックスを 1 つずつチェックする必要があります。

どうすればこれを続けるべきですか?私は..右のチェックボックスopeionでリストビューを使用することができます??

私は .net プログラマーであり、これは私にとって新しい経験であるため、コメントやアドバイスをいただければ幸いです。

4

2 に答える 2

2

ここに私が書いた基本的な例があります:

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);

ところで、なぜあなたがこれをやろうとしているのか、私にはわかりません。ただし、テスト目的の場合は、インストルメンテーション フレームワークを参照してください。

于 2010-08-01T03:28:16.800 に答える
0

遅延を伴う自動チェックには、チェックボックスのチェックなど、Android のメイン UI スレッド内で変更できるスレッドのような AsyncTask を使用する必要があります。

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 に 1 つずつ追加することもできます。

于 2010-08-01T03:23:06.817 に答える