私の目標は、既存の 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 を入力する機能はありますが、保存されません。毎回入力し続ける必要があります。
ありがとう