AsyncTask の助けを借りて、Spinner を使用して WebService 呼び出しからデータを入力するアクティビティがあります。私の問題は、logcat ですべてのArrayAdapter<String>
アイテムを表示できることですが、このアダプターを Spinner に渡すと、ドロップダウン リストのアイテムが表示されません。ここに私のコードスニペットがあります:
public static ArrayAdapter<String> adapter;
Spinner spnrCourseType;
spnrCourseType.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
new DownloadCourseTypesList().execute(training_id);
return true;
}
});
spnrCourseType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
ting("You Selected : " + adapter.getItem(arg2));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
/** Thread AsyncTask Class */
private class DownloadCourseTypesList extends AsyncTask<String,Void,ArrayList<String>> {
ProgressDialog progressDialog = new ProgressDialog(CorporateTrainingInquiryActivity.this);
protected void onPreExecute(){
actionBar.setProgressBarVisibility(View.VISIBLE);
progressDialog.setTitle("Course Types Loading..");
progressDialog.setMessage("Please Wait..");
progressDialog.show();
}
protected ArrayList<String> doInBackground(String... params) {
trainingList = new TrainingList(params[0]);
ArrayList<String> values = trainingList.getTrainingList();
// adapter = new ArrayAdapter<String>(CorporateTrainingInquiryActivity.this,android.R.layout.simple_spinner_item,values);
return values;
}
protected void onPostExecute(ArrayList<String> values) {
actionBar.setProgressBarVisibility(View.GONE);
adapter = new ArrayAdapter<String>(CorporateTrainingInquiryActivity.this,android.R.layout.simple_spinner_item,values);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.insert("Select Course Type",0);
spnrCourseType.setAdapter(adapter);
for(int i=0;i<adapter.getCount();i++){
System.out.println("Item in adapter at position : " + i + adapter.getItem(i));
}
adapter.notifyDataSetChanged();
if(progressDialog.isShowing()){
progressDialog.dismiss();
}
}
}
上記のコードを実行すると、ProgressDialog が表示され、最初の項目、つまり「Select Course Type」のみが Spinner 自体に表示されますが、ドロップダウン リスト項目には表示されません。それについての手がかり。私は昨日からこれで立ち往生しています:(