在我的android應用程序我有一個按鈕,它將新的動態微調添加到佈局。所有創建的Spinners都使用相同的Array。動態微調和共享首選
什麼工作到現在爲止,我可以保存創建的Spinners的數量,並在重新啓動應用程序後重新創建它們。 但我真的想將每個微調器的selectedPosition保存在sharedPreferences中,這就是我在ForceClose Desaster中的位置...
在我的理解中,每個微調器在創建時都會獲得一個ID,以便您可以保存該位置在首選項中以此ID爲界。
所以這是我做過什麼:
public void addSpinner(){
LinearLayout AddLayout = (LinearLayout)findViewById(R.id.linearAddScroll);
spinner = new Spinner(this);
ArrayAdapter<?> adapt = ArrayAdapter.createFromResource(this,
R.array.Filter, android.R.layout.simple_spinner_item);
adapt.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapt);
AddLayout.addView(spinner);
}
這創造了微調。
public void onClick(View v) {
addSpinner();
int ID = 1000+x;
spinner.setId(ID);
Toast.makeText(MatReporterActivity.this,"ID" + ID, 5)
.show();
x++;
}
設置ID。
這是我在上創建方法做:
x = settings.getInt("xsave", 1);
for(y = 1; y < x; y++){
addSpinner();
int ID = 1000+y;
Spinner s = (Spinner) findViewById(ID);
String ys= Integer.toString(ID);
Toast.makeText(MatReporterActivity.this,"ID" +ys, 5)
.show();
int yf = settings.getInt(ys, 1);
s.setSelection(yf);
}
這的onStop():
SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("xsave", x);
for(y = 1; y < x; y++){
int ID = 1000+y;
Spinner s2= (Spinner) findViewById(ID);
int possS = s2.getSelectedItemPosition();
Toast.makeText(MatReporterActivity.this, "IDStop" + ID, 5)
.show();
String ys= Integer.toString(ID);
editor.putInt(ys, possS);
}
editor.commit();
}
我認爲這是在onCreate方法的邏輯問題,但我我無法找到它,也沒有在網上找到任何幫助,如何填充和保存動態創建的spinners。
所以,也許有人有一個想法。 謝謝。
您的部隊的堆棧跟蹤關閉?你使用LogCat(如果沒有,你應該)。 – Klaus 2011-05-09 11:54:06