2013-09-21 59 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

相关问题