ここの初心者。コードを投稿する前に、簡単な説明を。
http経由でデータをロードし、SQL Liteデータベースに保存して表示する小さなアプリがあります.1つは名前付き、もう1つは曜日付きの2つのスピナーを設定します。名前と曜日の組み合わせを選択すると、その人がその日に何をしているかを示すテキストが表示されます。組み合わせが選択されている場合は、SharedPreferences を使用して保存されます。これはすべて正常に機能します。
サーバーから新しいデータを取得するために、「更新」ボタンの下に非同期タスクを設定しました。これはなくなり、データを取得し、データベースを再作成し、表示を更新します。名前スピナーが何らかの形で再初期化されているかのように、常に最初のエントリにリセットされることを除いて、これのほとんどは正常に機能します。
これをデバッグすると、非同期タスクが Looper クラスで終了するまで、すべてがうまく機能します。これが何をするのかはわかりませんが、クリーンアップのように見え、そこのどこかでスピナーがリセットされます。
以下は、削除された非同期タスクです。
何か案は?
private class GetDataAsyncTask extends AsyncTask<String, Void, String> {
String response = "";
ProgressBar pb=(ProgressBar)findViewById(R.id.progressBar2);
Spinner spinner1 = (Spinner) findViewById( R.id.spinner1 );
@Override
protected void onPreExecute() {
pb.setVisibility(View.VISIBLE);
pb.setMax(100);
super.onPreExecute();
}
@Override
protected String doInBackground(String... mystring) {
//get database
response=get_data_from_PMS();
Load_Arrays_with_stored_data();
return response;
}
@Override
protected void onPostExecute(String result) {
// display new updated consultant list
ArrayAdapter adapter_cons = new ArrayAdapter(whereisthatconsultantActivity.this,android.R.layout.simple_spinner_item, cons_spinner);
spinner1.setAdapter(adapter_cons);
adapter_cons.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//
spinner1.setSelection(GetDisplayVal("selconspos"));
//
textView2.setText(display_stored_data());
//
pb.setVisibility(View.INVISIBLE);
}
}