いわゆるメモ代わりとしてブログを使ってみたいと思っていたところちょうどいいところに解決できない事案が発生、原因を調べてみるとよく分からなかったがいろんなところのコードをコピペしたらなんとかなった()
やりたかったこと
- ListViewの要素の1つをタップするとAlertDialogが開き、そこにEditTextがあり文字を打てる
起こったこと
- 1回目はちゃんとダイアログが開くが、OKやキャンセルを押してアプリを閉じずにもう一度タップすると落ちる(死)
原因
- なんかどうやらDialogとかEditTextとかがすでに生成されて結びついているのに再生成しようとして色々とやばいらしい(適当)
解決法
- Dialogの管理をActivityに任せた(日本語でおk)
こんな感じ(?)
@Overrideprotected Dialog onCreateDialog(int id)
{
Dialog dialog = super.onCreateDialog(id);
if( id == 0 )
{
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
dialogBuilder.setTitle(R.string.Title);
dialogBuilder.setView(this.editText);
dialogBuilder.setPositiveButton(R.string.OK, this.OkButton);
dialogBuilder.setNegativeButton(R.string.Cancel, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which){}
});
dialog = dialogBuilder.create();
}
return dialog;
}
・・・謎
まともなメモ代わりとして使えてないぞ?
難しいので今日はとりあえずこの辺で(逃げた)