il dialogo di avviso scompare mentre ricarica l'attività in android

Devo sviluppare un'applicazione Android.

Ho creato una window di dialogo di avviso. Se devo ruotare l'orientamento significa che la window di dialogo di avviso scompare.

  • Impedire l'espansione della barra di stato
  • Come posso modificare il colore di OverScroll in Android 2.3.1?
  • Pulsante angular rotondo con il colore di background in android
  • Come posso decodificare la string?
  • Android WebView non carica contenuto misto
  • Rileva un pizzico di dito tramite JavaScript su iPhone e Android
  • Ma desidero visualizzare la window di avviso quando l'orientamento cambia.

    @Override public void onConfigurationChanged ( Configuration newConfig ) { super.onConfigurationChanged(newConfig); try { MainActivity.editCalled = true; Intent in = new Intent(AndroidListFragmentActivity.this, AndroidListFragmentActivity.class); startActivity(in); finish(); } catch (Exception e) { e.printStackTrace(); } } 

    Qui ho due frammenti …

    In quel secondo frammento avendo una window di avviso:

      ImageView share = (ImageView) findViewById(R.id.imageView5); share.setOnClickListener(new OnClickListener() { public void onClick ( View v ) { final CharSequence[] items = { "Facebook", "Twitter", "Email" }; AlertDialog.Builder builder = new AlertDialog.Builder(SubCate.this); builder.setTitle("Share Via:"); builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick ( DialogInterface dialog , int item ) { if (items[item] == "Facebook") { onFacebookClick(); } if(items[item] == "Twitter"){ onClickTwitt(); } if (items[item] == "Email") { Intent email = new Intent(Intent.ACTION_SEND); email.setType("message/rfc822"); email.putExtra(Intent.EXTRA_EMAIL, new String[] { "" }); email.putExtra(Intent.EXTRA_SUBJECT, _Substring); email.putExtra(Intent.EXTRA_TEXT, ContentEmail); startActivity(Intent.createChooser(email, "Choose an Email client :")); } } }); AlertDialog alert = builder.create(); alert.show(); } }); } Here only i have facing above problem..please give me solution for these ??? 

  • Osservando le modifiche nell'osservatore di contenuti Android per Audio.Media.EXTERNAL_CONTENT_URI
  • Accesso al valore sdk.dir in build.gradle dopo la valutazione del progetto
  • Distriggerszione del button Home di Android per l'applicazione del settore
  • come abilitare i gps in android
  • Non ricevere tutte le interfacce di networking di un dispositivo Android
  • Androide ripetere l'allarme each lunedì o each martedì
  • 2 Solutions collect form web for “il dialogo di avviso scompare mentre ricarica l'attività in android”

    Impostazione di android:configChanges="orientation" non è incoraggiato in Android. Devi prima dichiarare l' Alertdialog nel tuo frammento e quindi utilizzare onSavedInstanceState :

     AlertDialog alert; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.yourid, container, false); if(savedInstanceState != null && savedInstanceState.getBoolean("alertShown",true)) { showDialog(view.getContext()); } } } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); if(alert != null && alert.isShowing()) { // close dialog to prevent leaked window alert.dismiss(); outState.putBoolean("alertShown", true); } } // put all creating dialog stuff in a single method protected void showDialog(final Context context) { AlertDialog.Builder builder = new AlertDialog.Builder(context); ... alert = builder.create(); alert.show(); } 

    Come suggerito da molte persone qui,

     android:configChanges="keyboardHidden|orientation" 

    non è una soluzione. È un hack al meglio. Il modo corretto di gestire è gestire le windows di dialogo attraverso la tua attività. È necessario superare alcuni methods nel codice di attività, come così:

     protected Dialog onCreateDialog(int id) { // create and return your dialog instance here AlertDialog dialog = new AlertDialog.Builder(context) .setTitle(title) .setIcon(R.drawable.indicator_input_error) .setMessage(message) .create(); dialog.setButton( DialogInterface.BUTTON_POSITIVE, context.getString(R.string.OK), (DialogInterface.OnClickListener) null); return dialog; } protected void onPrepareDialog(int id, Dialog dialog) { // You dialog initialization code here } 

    Dopo che sei finito con questo. Mostra la window di dialogo utilizzando:

     showDialog(yourDialogID); 

    Una volta completata l'implementazione, verrà visualizzata la window di dialogo anche se si verificano modifiche di configuration. La parte migliore è che la tua attività gestirà la tua window di dialogo per te. Sarà riutilizzato quando ansible, riducendo i tempi di caricamento della window se eseguite un'initialization pesante.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.