2017-10-11 120 views
2

我正在爲使用隱藏字段值的應用程序實現一個自定義微調器。它正在工作,但當我再次更新時,第一次保存的項目未顯示在微調器上,我需要它將顯示在微調器上。謝謝你,下面是我的代碼。無法檢索微調器的值

final MyData items[] = new MyData[25]; 
    items[14] = new MyData("5ft 1in","154"); 
    items[15] = new MyData("5ft 2in","157"); 
    items[16] = new MyData("5ft 3in","160"); 
    items[17] = new MyData("5ft 4in","162"); 
    items[18] = new MyData("5ft 5in","165"); 
    items[19] = new MyData("5ft 6in","167"); 
    items[20] = new MyData("5ft 7in","170"); 
    items[21] = new MyData("5ft 8in","172"); 
    items[22] = new MyData("5ft 9in","175"); 
    items[23] = new MyData("5ft 10in","177"); 
    items[24] = new MyData("5ft 11in","180"); 
    items[25] = new MyData("5ft 12in","182"); 
    items[26] = new MyData("6ft 1in","185"); 
    items[27] = new MyData("6ft 2in","187"); 
    items[28] = new MyData("6ft 3in","190"); 
    items[29] = new MyData("6ft 4in","193"); 
    items[30] = new MyData("6ft 5in","195"); 
    items[31] = new MyData("6ft 6in","198"); 
    items[32] = new MyData("6ft 7in","201"); 
    items[33] = new MyData("6ft 8in","203"); 
    items[34] = new MyData("6ft 9in","206"); 
    items[35] = new MyData("6ft 10in","208"); 
    items[36] = new MyData("6ft 11in","211"); 
    items[37] = new MyData("6ft 12in","213"); 
    items[38] = new MyData("Above 7ft","217"); 
    ArrayAdapter<MyData> adapter = new ArrayAdapter<MyData>(this, android.R.layout.simple_spinner_item, items); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    spinHeight1.setAdapter(adapter); 
    for(int i=0; i < adapter.getCount(); i++) { 
     if (partnerHeight1.trim().equalsIgnoreCase(adapter.getItem(i).toString())) { 
      spinHeight1.setSelection(i); 
      break; 
     } 
    } 

    spinHeight1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      MyData d = items[i]; 
      heightFrom=d.getValue(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

     } 
    }); 
+0

你有調試你的代碼嗎?您的for循環是否正在執行?因爲您在設置適配器 –

+0

後立即檢查您想要選擇的值嗎? –

+0

是的,我想要選定的值。 –

回答

1

嘗試這種方式

spinHeight1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 

heightFrom=spinHeight1.getSelectedItem().toString(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

     } 
    }); 
+0

這不起作用 –

+0

你有調試嗎?你的光標在裏面或不在heightfrom = –

+0

我用Log.e(「heightfrom」,heightfrom);這是不打印日誌 –

1

如果partnerHeight1是字符串,則

for(int i=0; i < items.length; i++) { 

     if (partnerHeight1.trim().equalsIgnoreCase(items[i].getValue())) { 
      spinHeight1.setSelection(i); 
      break; 
     } 
    } 

如果partnerHeight1是邁德特然後

for(int i=0; i < items.length; i++) { 

     if (partnerHeight1.getValue().equalsIgnoreCase(items[i].getValue())) { 
      spinHeight1.setSelection(i); 
      break; 
     } 
    } 
+0

什麼是消息函數 –

+0

MyData成員訪問方法我在考慮兩個成員id和消息 –

+0

這個方法沒有解決 –

0

如果適配器的數據被改變爲數據被反映到視圖Adapter.notifyDataSetChanged();

空隙notifyDataSetChanged()

通知所連接的觀察員底層數據已經改變和任何查看反映數據集應刷新本身。