2012-11-29 41 views
2

我需要的是觸發到setOnitemSelectedListener不與編程方式創建微調的Android

  1. 創建一個按鈕動態微調點擊
  2. 選擇微調值和設置的值到編輯文本字段。

爲此我以編程方式創建了一個動態微調器。將該代碼放入按鈕點擊偵聽器中。它的工作很好,在這裏。

但動態微調的setOnitemSelectedListener不能在所有工作..還有在logcat中沒有任何錯誤......請幫助我..

------------這些在裏面的onCreate方法------------

Spinner spnOutHospitalList = new Spinner(Referance.this); 

// list button on click event 
btnList = (Button) findViewById(R.id.btn_list); 
btnList.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    // TODO Auto-generated method stub 
    // function to create spinner dynamically 
    createDynamicSpinner(); 
    } 
}); 

// Out Hospital List Spinner on item click listener 
spnOutHospitalList.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1,int position, long arg3) { 
    // TODO Auto-generated method stub 
    outHospitalName = hospitalNameListArray.get(position); 
    outHospital.setText(outHospitalName); 
    } 
    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub 
    } 
}); 



------------ These are the functions outside onCreate but inside the Activity------------ 


// to create spinner dynamically 
private void createDynamicSpinner() { 
    // TODO Auto-generated method stub 
    spnOutHospitalList.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    loadOutHospitalListSpinner(); 
    spnOutHospitalList.performClick(); 
} 

// to load out hospital/ clinic data into spinner 
private void loadOutHospitalListSpinner() { 
    // TODO Auto-generated method stub 
    try { 
     if (getFirstRun()) { 
     sampleDB = dbAdapter.getDatabase(); 
     setRunned(); 
     } 
     else { 
     sampleDB = dbAdapter.getWritableDatabase(); 
     } 
     Cursor c1 = sampleDB.rawQuery("select DISTINCT EPR_OUT_HOSPITAL from EMR_PT_REFERNCE",null); 
     System.out.println("count is " + c1.getCount()); 

     if (c1 != null && c1.getCount() != 0) { 
      hospitalNameListArray.clear(); 
       if (c1.moveToFirst()) { 
        do { 
         hospitalNameListArray.add(c1.getString(c1.getColumnIndex("EPR_OUT_HOSPITAL"))); 
        } while (c1.moveToNext()); 
       } 
      } 
      c1.close(); 

      ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, hospitalNameListArray); 

      // dropdownlist 
      dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

      spnOutHospitalList.setAdapter(dataAdapter); 

     } 
     catch (Exception e) { 
      // TODO: handle exception 
      System.out.println("CAT LIST ERROR IS: " + e.getMessage()); 
     } 

    } 
+0

Logcat中的任何錯誤? –

+0

也定義'不工作' – njzk2

+0

當你捕捉到一個異常時,你不應該簡單地記錄消息,而是打印堆棧跟蹤。它包含大量的lof信息 – njzk2

回答

2

嘗試內createDynamicSpinner

private void createDynamicSpinner() { 

//Remove this line from top in your code and add here 
Spinner spnOutHospitalList = new Spinner(Referance.this); 

    spnOutHospitalList.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

    //Pass Spinner Object to this function to load data in it! 
    loadOutHospitalListSpinner(spnOutHospitalList); 
    spnOutHospitalList.performClick(); 

spnOutHospitalList.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1,int position, long arg3) { 
    // TODO Auto-generated method stub 
    outHospitalName = hospitalNameListArray.get(position); 
    outHospital.setText(outHospitalName); 
    } 
    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub 
    } 
}); 
} 

相關問題