2 つのカスタム ダイアログ ボックスを作成しました。1 つは about で、もう 1 つは alert です。その時にトウカスタムダイアログボックスで交互に選択すると、ボタンが機能しません。
サンプルコード
AlertDialog.Builder builder;
Context mContext;
LayoutInflater inflater;
View layout;
Dialog dialog;
@Override
protected Dialog onCreateDialog( int id )
{
switch ( id )
{
case 1:
builder = null;
mContext = this;
inflater = ( LayoutInflater ) mContext.getSystemService( LAYOUT_INFLATER_SERVICE );
layout = inflater.inflate( R.layout.alert_page, ( ViewGroup ) findViewById( R.id.alert_Root ) );
Button alertUser = ( Button ) layout.findViewById( R.id.alert_Submit );
alertUser.setOnClickListener( new View.OnClickListener()
{
public void onClick( View v )
{
try
{
dialog.dismiss();
}
catch ( Exception e )
{
Toast.makeText( getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT ).show();
}
}
});
builder = new AlertDialog.Builder( mContext );
builder.setView( layout );
dialog = builder.create();
dialog.show();
break;
case 2:
builder = null;
mContext = this;
inflater = ( LayoutInflater ) mContext.getSystemService( LAYOUT_INFLATER_SERVICE );
layout = inflater.inflate( R.layout.about_page, ( ViewGroup ) findViewById( R.id.about_Root ) );
Button aboutUser = ( Button ) layout.findViewById( R.id.about_Submit );
aboutUser.setOnClickListener( new View.OnClickListener()
{
public void onClick( View v )
{
Log.e("About","About");
try
{
Log.e("About1","About");
dialog.dismiss();
}
catch ( Exception e )
{
Log.e("About","About12");
Toast.makeText( getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT ).show();
}
}
});
builder = new AlertDialog.Builder( mContext );
builder.setView( layout );
dialog = builder.create();
dialog.show();
break;
}
return dialog;
}
たとえば、私は 2 つのボタンを使用しています。最初のボタンが呼び出されcase 1
、2 番目のボタンが呼び出されcase 2
ます。
最初にアクセスするボタンを選択してからcase 1
、カスタムダイアログボックスのalertUser
ボタンを選択しsuccessfully Exit the dialog box
ました。
すぐに、アクセスするための 2 番目のボタンが選択されcase 2
、カスタム ダイアログ ボックスaboutUser
ボタンが選択されますsuccessfully Exit the dialog box
。
すぐに選択された後、最初のボタンにアクセスcase 1
してから、カスタムダイアログボックスのalertUser
ボタンを選択しますNow the dialog box does not exist (button is now not working)
。
コードが間違っているところ。この問題をどのように解決しましたか。
前もって感謝します。