ボタンが押されたときに表示される AlertDialog があります。アラート「完了」ボタンが押されたときにユーザーの名前を保存します。次に、ユーザーを別のアクティビティに移動します。私が理解しようとしているのは、AlertDialog を表示するこのレイアウト ボタンを最初に押したときにのみ AlertDialog を表示する方法です。これにより、ユーザーがアプリのこの部分に戻って同じレイアウト ボタンを押すと、AlertDialogは表示されず、ユーザーは自分の名前を再度入力する必要はありません。動作しないコードは次のとおりです。
public class CloseoutActivity extends Activity {
SharedPreferences prefs2;
String prefs2String="";
boolean firstRun = true;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_closeout);
// Make sure we're running on Honeycomb or higher to use ActionBar APIs
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
// For the main activity, make sure the app icon in the action bar
// does not behave as a button
ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(false);
}
}
public void closeoutCashButtonPressed (View closeoutCashButtonPressedView){
if(firstRun){
AlertDialog.Builder builder3 = new AlertDialog.Builder(this);
builder3.setTitle(" Please enter your full name");
final EditText input3 = new EditText(this);
input3.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_CAP_WORDS|InputType.TYPE_TEXT_VARIATION_PERSON_NAME);
builder3.setView(input3);
builder3.setPositiveButton("Done", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
prefs2String = input3.getText().toString();
prefs2 = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor prefs2Editor = prefs2.edit();
String userName1 = input3.getText().toString();
prefs2Editor.putString("userName", userName1);
prefs2Editor.commit();
launchIntent1();
}
});
builder3.show();
}
firstRun = false;
}
public void launchIntent1(){
Intent displayCloseoutCashButtonSignal = new Intent (this, CloseoutCashButtonSignal.class);
displayCloseoutCashButtonSignal.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(displayCloseoutCashButtonSignal);
このコードを使用すると、アプリのこの部分に戻ったときに AlertDialog がポップアップし続けます。何か案は?ありがとう!