2015-01-06 109 views
1

您好我有一個微調器被JSON/PHP查詢填充到Mysql。這工作,但微調顯示空白加載應用程序,當我點擊微調我可以看到的價值,但如果我選擇一個價值,它不顯示選定的價值。微調不顯示選擇項目或默認

items.add("Choose Island"); 
//Get data from Database using JSON and Populate spinner 
    new DownloadJSONAsync().execute(); 
    ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, items); 
    spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    // attaching data adapter to spinner 
    Island.setAdapter(spinnerAdapter); 

Island.setOnItemSelectedListener(new OnItemSelectedListener(){ 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, 
       int position, long id) { 
      CIsland=Island.getSelectedItemPosition(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
      // TODO Auto-generated method stub 
     } 
    }); 

類:

public class DownloadJSONAsync extends AsyncTask<String,Void,Boolean>{ 
    private ProgressDialog pDialog; 
    @Override 
    protected void onPreExecute(){ 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(MainActivity.this); 
     pDialog.setMessage("Getting Data ..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
    } 
    @Override 
    protected Boolean doInBackground(String... params) { 
     try{ 
      JSONObject jObj = new JSONObject(getJSONUrl(URL_ISLANDS)); 
      JSONArray data = jObj.getJSONArray("Islands"); 
      for(int i=0; i < data.length(); i++){ 
       JSONObject c = data.getJSONObject(i); 
       Country = new HashMap<Integer, String>(); 
       Country.put(c.getInt("CountryID"), c.getString("Country")); 
       String ListItem = c.getString("Country"); 
       items.add(ListItem); 
      } 
      return true; 
     }catch(JSONException e){ 
      e.printStackTrace(); 
     }   
     return false; 
    } 

    @Override 
    protected void onPostExecute(Boolean result){ 
    super.onPostExecute(result); 
    if(result==false){ 
     pDialog.setMessage("Could not get data"); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
    } 
    else{ 
     pDialog.dismiss(); 
    } 
    } 
} 

Layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#0404B4" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.cadushideals.MainActivity" > 

<TextView 
    android:id="@+id/lblTitle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="12dp" 
    android:text="Company Add" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textColor="#FFFFFF" 
    android:textStyle="bold" /> 

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@+id/lblTitle"> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/lblTitle" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="20dp" 
    android:background="#FFFFFF" 
    android:ems="10" 
    android:hint="Enter Company Name" 
    android:inputType="text" /> 

<EditText 
    android:id="@+id/editText2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/editText1" 
    android:layout_below="@+id/editText1" 
    android:layout_marginTop="15dp" 
    android:background="#FFFFFF" 
    android:ems="10" 
    android:hint="Enter Description" 
    android:inputType="textMultiLine" /> 

<EditText 
    android:id="@+id/editText3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/editText2" 
    android:layout_below="@+id/editText2" 
    android:layout_marginTop="15dp" 
    android:background="#FFFFFF" 
    android:ems="10" 
    android:hint="Enter Email" 
    android:inputType="textEmailAddress" /> 

<EditText 
    android:id="@+id/editText4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/editText3" 
    android:layout_below="@+id/editText3" 
    android:layout_marginTop="15dp" 
    android:background="#FFFFFF" 
    android:ems="10" 
    android:hint="Enter Address" 
    android:inputType="text" /> 

<EditText 
    android:id="@+id/editText5" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/editText4" 
    android:layout_below="@+id/editText4" 
    android:layout_marginTop="15dp" 
    android:background="#FFFFFF" 
    android:ems="10" 
    android:hint="Enter Tel" 
    android:inputType="phone" /> 

<EditText 
    android:id="@+id/editText6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/editText5" 
    android:layout_below="@+id/editText5" 
    android:layout_marginTop="15dp" 
    android:background="#FFFFFF" 
    android:ems="10" 
    android:hint="Enter Fax" 
    android:inputType="phone" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/editText6" 
    android:layout_below="@+id/editText6" 
    android:layout_marginTop="15dp" 
    android:text="Latitude" 
    android:textColor="#FFFFFF" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/textView1" 
    android:layout_below="@+id/textView1" 
    android:layout_marginTop="15dp" 
    android:text="Longitude" 
    android:textColor="#FFFFFF" 
    android:textStyle="bold" /> 

<Spinner 
    android:id="@+id/spinner1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/textView2" 
    android:layout_alignRight="@+id/editText6" 
    android:layout_below="@+id/textView2" 
    android:layout_marginTop="15dp" /> 

<CheckBox 
    android:id="@+id/checkBox1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/spinner1" 
    android:layout_below="@+id/spinner1" 
    android:layout_marginTop="15dp" 
    android:background="#FFFFFF" 
    android:text="Company Valid" /> 

<CheckBox 
    android:id="@+id/checkBox2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/spinner1" 
    android:layout_below="@+id/checkBox1" 
    android:layout_marginTop="15dp" 
    android:background="#FFFFFF" 
    android:text="Tire Customer" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignRight="@+id/spinner1" 
    android:layout_below="@+id/checkBox1" 
    android:layout_marginTop="15dp" 
    android:minWidth="50dip" 
    android:text="Add" /> 
</LinearLayout> 
</ScrollView> 

+0

你試過讀這個嗎? http://stackoverflow.com/questions/24504970/spinner-selection-not-working-android – Nothing

回答

3

在 「onPostExecute」 你DownloadJSONAsync的,你會想稱之爲「notifyDataSetChanged「在你的spinnerAdapter上。另外,您還可以在Spinner課程中調用「setSelection」以獲取所需的物品。希望這可以幫助。

注意:另一種方法是讓您的DownloadJSONAsync返回一個字符串列表。並在你的postexecute,做spinnerAdapter.clear()。addAll(Items);(這是一個更清潔的方法,你不必打電話給notifyDataSetChanged)

+0

你好債券感謝回答嘗試了你的建議,但仍然是同樣的問題。我添加了一個鏈接到我正在經歷的屏幕截圖,可能會更好地理解。 – Kurt

+0

您是否嘗試通過適配器進行更新(請參閱註釋部分),而不是僅更新項目? – bond

+0

試過這個,但仍然是: 'new DownloadJSONAsync()。execute(); \t \t ArrayAdapter spinnerAdapter = new ArrayAdapter (this,android.R.layout.simple_spinner_item,items); \t \t spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); \t \t spinnerAdapter.clear(); \t \t spinnerAdapter.addAll(items); \t \t Island.setAdapter(spinnerAdapter);' – Kurt

相關問題