2015-02-03 3 views
2

я получил элементы из базы данныхAndroid Spinner выбранного элемента не отображается

Вот кода Java

package com.example.androidtablayout; 

public class Leave extends Activity implements OnItemSelectedListener{ 
Button btnSubmitLeave,btnLogout; 
SessionManager session; 
JSONParser jsonParser = new JSONParser(); 
Spinner mySpinner; 
ProgressDialog mProgressDialog; 
JSONArray jsonarray; 

ArrayList<String> leavetype; 
String username; 
EditText inputStart,inputEnd,inputReason; 
final Calendar myCalendar = Calendar.getInstance(); 

private String url_leavetype = "http://10.0.3.2/sunshine-ems/get_leavetype.php"; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.leave); 

    // CHECK TO LOGIN SESSION 
    session = new SessionManager(getApplicationContext()); 
    session.checkLogin(); 
    username = session.getUsername(); 


    inputReason = (EditText) findViewById(R.id.inputReason); 
    inputStart = (EditText) findViewById(R.id.inputStart); 
    inputEnd = (EditText) findViewById(R.id.inputEnd); 
    btnSubmitLeave = (Button) findViewById(R.id.btnSubmitLeave); 


    //spinner 
    mySpinner= (Spinner) findViewById(R.id.spinnerLeaveType); 
    leavetype = new ArrayList<String>(); 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, leavetype); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    new getLeaveTypes().execute(); 
    mySpinner.setAdapter(adapter); 
    mySpinner.setOnItemSelectedListener(this); 

} 
private class getLeaveTypes extends AsyncTask<String, String, String> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     mProgressDialog = new ProgressDialog(Leave.this); 
     mProgressDialog.setTitle("Getting Leave types"); 
     mProgressDialog.setMessage("Loading..."); 
     mProgressDialog.setIndeterminate(false); 
     mProgressDialog.show(); 
    } 

    @Override 
    protected String doInBackground(String... args) { 

     int success; 

     List<NameValuePair> params1 = new ArrayList<NameValuePair>();   
     try { 

      params1.add(new BasicNameValuePair("username", username));   
      JSONObject json = jsonParser.makeHttpRequest(url_leavetype, "GET",params1); 

      // full json response 
      Log.d("Get Leave types", json.toString()); 

      // json success element 
      success = json.getInt(TAG_SUCCESS); 
      if (success == 1) { 

       JSONArray type = json.getJSONArray("leavetypes");       

       for (int i = 0; i < type.length(); i++) { 
        JSONObject catObj = (JSONObject) type.get(i); 
        leavetype.add(catObj.optString("leave_name")); 
       } 

      } else { 
       Log.d("Login Failure!", json.getString(TAG_MESSAGE)); 
       return json.getString(TAG_MESSAGE); 

      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

    protected void onPostExecute(String file_url) { 
     // dismiss the dialog once product deleted 
     mProgressDialog.dismiss(); 
    } 

} 

public void onItemSelected(AdapterView<?> parent, View view, int position, 
     long id) { 
    Toast.makeText(
      getApplicationContext(), 
        parent.getItemAtPosition(position).toString() + " Selected" , 
      Toast.LENGTH_LONG).show(); 

} 


public void onNothingSelected(AdapterView<?> arg0) {  
} 
} 

Этих данные из базы данных есть, список вертушки показывает, но когда я нажал элемент, он не отображается на этом счетчике. Надеюсь, кто-то меня пошевелит. Спасибо

+0

Выдает ли Toast выбранное значение правильно? Если да, вы можете проверить, является ли это графическим вопросом (некоторые темы Android AppCompat, как известно, отображают белый текст на белом фоне). – SlashG

ответ

3

Добавить это adapter.notifyDataSetChanged() в onPostExecute() метод:

protected void onPostExecute(String file_url) { 
    // dismiss the dialog once product deleted 
    adapter.notifyDataSetChanged(); 
    mProgressDialog.dismiss(); 

} 
Смежные вопросы