我的目標是將項目永久添加到現有的AlertDialog。將項目永久添加到現有的alertdialog?
的AlertDialog的XML數組是:
<array name="serverchoice">
<item>@string/chicago_server</item>
<item>@string/london_server</item>
<item>@string/sanjose_server</item>
<item>@string/washington_server</item>
<item>@string/chicagoq_server</item>
<item>@string/londonq_server</item>
<item>@string/sanjoseq_server</item>
<item>@string/washingtonq_server</item>
</array>
正如你可以看到它的服務器列表,我想用戶可以添加自己的服務器,而不必使用預設服務器。
我創建了一個帶有文本框和按鈕的頁面,以便用戶可以輸入服務器。當用戶單擊添加服務器按鈕時,我想將條目添加到列表中。
目前,當用戶從AlertDialog選擇一個菜單項就得到處理是這樣的:
// Choose Server method
private void openServerDialog() {
new AlertDialog.Builder(this)
.setTitle(R.string.server_title)
.setItems(R.array.serverchoice,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialoginterface,
int i) {
setServer(i);
}
})
.show();
}
private void setServer(int i) {
if (String.valueOf(i).equals("0")){
CustomServer.setText("mcsord.visualware.com");
}
else if (String.valueOf(i).equals("1")){
CustomServer.setText("mcslhr.visualware.com");
}
else if (String.valueOf(i).equals("2")){
CustomServer.setText("mcssjc.visualware.com");
}
else if (String.valueOf(i).equals("3")){
CustomServer.setText("mcsiad.visualware.com");
}
else if (String.valueOf(i).equals("4")){
CustomServer.setText("qualitytestord.visualware.com");
}
else if (String.valueOf(i).equals("5")){
CustomServer.setText("qualitytestlhr.visualware.com");
}
else if (String.valueOf(i).equals("6")){
CustomServer.setText("qualitytestsjc.visualware.com");
}
else if (String.valueOf(i).equals("7")){
CustomServer.setText("qualitytestiad.visualware.com");
}
}
所有我想現在做的就是另一種永久性的項目,當用戶選擇添加一個。我對此的最後一個問題還不夠清楚。我不想要一個選項菜單或上下文菜單。
感謝
編輯:
更我可以看到人們說這是不可能的動態添加到一個數組列表說完看了看四周。
目前我有一個選項菜單,當android手機本身按下菜單按鈕時會出現。我使用的代碼是:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.settings_menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.add_server:
addNewServer();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
是否有可能創建,而不是AlertDialog上面顯示的另一個選項菜單和使用?或者我會遇到無法動態添加列表項目的相同問題。
我有一個用戶輸入他們自己的URL的能力,但它不能保存它,他們將不得不每次都輸入它。
感謝
據我所知,你不能在運行時編輯這些XML文件。您將需要使用其他持久存儲服務(sqlite或web服務)來保存添加的條目。那麼當它顯示他們需要檢查替代位置並將其添加到列表中時 –