2017-04-03 31 views
1

我定義了BaseAdapter以使用SQL中的記錄填充Spinner 我將Spinner中item的setTag設置爲等於SQL數據庫中的Record ID。Android:Spinner set標籤選擇

public static class Refueling_Adapter extends BaseAdapter { 
    private Context vContext; 
    private List<Banziny.Refuel> mRefuelingList; 
    //private int mListing; 

    public Base_Adapter(Context vContext, List<AppTest.basic> mBaseList) { 
     this.vContext = vContext; 
     this.mBaseList = mBaseList; 
    } 

    @Override 
    public int getCount() { 
     return mBaseList.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return mBaseList.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

      convertView = View.inflate(vContext, R.layout.item_base, null); 
      convertView.setTag(mBaseList.get(position).getBase_id()); 

      TextView Basename = (TextView) convertView.findViewById(R.id.txt_Base_name); 
      Basename.setText(mBaseList.get(position).getBase_name()); 


     return convertView; 
    } 
} 

正如您所看到的,我將「微調項」的標記設置爲等於SQL記錄標識。 現在我只需要知道如何使用等於SQL Record ID的標籤爲Spinner setSelectedSelected。

int baseidtoselect = mBaseList.get(0).getBase_ID(); 

此ID從數據庫中檢索,我需要在微調器中找到標籤。

回答

0

您可以使用此功能

public static void selectItemByTag(Spinner spinner, int tag) { 
    Refueling_Adapter adapter = (Refueling_Adapter) spinner.getAdapter(); // it is Refueling_Adapter because your Spinner use Refueling_Adapter 
    for (int position = 0; position < adapter.getCount(); position++) { 
     if(((YourObjectModel)adapter.getItem(position)).getBase_id() == tag) { // YourObjectModel here is AppTest.basic 
      spinner.setSelection(position); 
      return; 
     } 
    } 
} 
+0

我有問題,這個((YourObjectModel)adapter.getItem(位置))。getBase_id() –

+0

@MohamedAtef我在代碼中的一些評論,請閱讀 –

+0

我已經調整到我的代碼,但這個想法對我來說似乎很好。謝謝 –