我的目标是将一个项目永久添加到现有的 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,但它不会保存它,他们每次都必须继续输入它。
谢谢