2013-09-21 61 views
0

我有四個EditText值。我將這些值存儲爲SharedPreferences以便稍後獲取。存儲後,我需要從點擊微調獲得這些值。我搜查了一些文件,但沒有清楚地理解。我需要從edittext只得到et值,如果我在edittext中重新輸入另一個值,我需要使用2個按鈕來增加微調值。將編輯文本值傳遞給微調器

代碼:

活動:

final Map<String, String> demomap = new HashMap<String, String>(); 

demomap.put(et.getText().toString(), et1.getText().toString()); 
demomap.put(et2.getText().toString(), et3.getText().toString()); 
SharedPreferences preferences = getSharedPreferences("CREATE_MEAL", 
     0); 
SharedPreferences.Editor editor = preferences.edit(); 
for (Entry<String, String> entry : demomap.entrySet()) { 
    editor.putString(entry.getKey(), entry.getValue()); 
} 
editor.commit(); 

活動1:

spinner = (Spinner)findViewById(R.id.spinner1); 
demomap = new HashMap<String, String>(); 
SharedPreferences preferences = getSharedPreferences("CREATE_MEAL", 0); 
for (Entry<String, ?> entry : preferences.getAll().entrySet()) { 
    demomap.put(entry.getKey(), entry.getValue().toString()); 
} 

Iterator myVeryOwnIterator = demomap.keySet().iterator(); 

while (myVeryOwnIterator.hasNext()) { 
    String key = (String) myVeryOwnIterator.next(); 
    String value = (String) demomap.get(key); 

    spinner.setText(value); 
} 

回答

0

我會建議你檢查Spinners tutorial。似乎您需要爲Spinner創建適當的Adapter(我認爲ArrayAdapter已足夠用於您的目的)並更新它,然後您需要更新Spinner中的數據。

你可以做到這一點通過以下方式在活動1

Spinner spinner = (Spinner)findViewById(R.id.spinner1); 
    demomap = new ArrayList<String>(); 

    SharedPreferences preferences = getSharedPreferences("CREATE_MEAL", 0); 
    for (Map.Entry<String, ?> entry : preferences.getAll().entrySet()) { 
     demomap.add(entry.getValue().toString()); 
    } 

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, demomap); 
    // Specify the layout to use when the list of choices appears 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    // Apply the adapter to the spinner 
    spinner.setAdapter(adapter); 
+0

@sandstar:如果我使用這些線即時在轉讓等,ET3值。我只需要得到et值。如何隱藏edt3值。 demomap.put(et.getText()。toString(),et1.getText()。toString()); demo2.map().toText()。toString(),et3.getText()。toString()); – user2800268

+0

不要將et3值放入demomap中。是否有可能將這些值與第一個循環區分開來(例如根據輸入的名稱)? – sandrstar

+0

我沒有得到?我需要將et1,et2,et3的值存儲到et。當我將等值傳遞給spinnet時,et值應該包含所有其他edittext值。所以,即時通訊使用et3值。是否有可能將所有值存儲在et – user2800268

相關問題