2016-08-09 122 views
0

Ich mag würde Benutzer aufzufordern, die App mit der auf der Rückseite gedrückt, um zu beenden, aber dieses Ich kämpfe in meinem FragmentBeenden App Dialog aus einem Fragment

public class HomeFragment extends Fragment { 
 

 

 
    public HomeFragment() { 
 
     // Required empty public constructor 
 
    } 
 

 

 
    @Override 
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
 
          Bundle savedInstanceState) { 
 
     // Inflate the layout for this fragment 
 
     return inflater.inflate(R.layout.fragment_home, container, false); 
 
    } 
 

 
    @Override 
 
    public void onBackPressed() { 
 
     new AlertDialog.Builder(this) 
 
       .setTitle("Really Exit?") 
 
       .setMessage("Are you sure you want to exit?") 
 
       .setNegativeButton(android.R.string.no, null) 
 
       .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
 

 
        public void onClick(DialogInterface arg0, int arg1) { 
 
         HomeFragment.super.onBackPressed(); 
 
        } 
 
       }).create().show(); 
 
    } 
 
}

+2

ich glaube nicht, dass Sie onBackPressed() von einem Fragment überschreiben können, müssen Sie dies aus der Aktivität, die das Fragment enthält – has19

+0

Sie können NegativeButton (Abbrechen) im Dialogfeld hinzufügen, also wenn Benutzer auf Abbrechen Schaltfläche klicken Sie dann kann den Dialog schließen. –

+1

Sie können onBackPressed() nicht innerhalb eines Fragments – darwin

Antwort

1

Sie können das nicht innerhalb von Fragmenten tun, aber es ist in Ihrer Situation möglich, da jedes Fragment auf einer Aktivität ausgeführt wird.

Fügen Sie diesen onBackPressed-Code einfach in die Aktivität ein, die das Fragment enthält.

0

Können Sie implementieren versuchen, auf diese Weise und überprüfen, ob es funktioniert:

@Override 
public void onDetach() { 
    super.onDetach(); 
    PUT YOUR CODE HERE 
} 
+0

scheint nicht in Fragment arbeiten – james

1

Verwendung diesen Code für die Ansicht Alarmdialogfeld

final android.support.v7.app.AlertDialog.Builder alertDialog = new android.support.v7.app.AlertDialog.Builder(getActivity()); 
     alertDialog.setTitle("Your text"); 
     alertDialog.setMessage("Your custom text") 
       .setCancelable(true).setPositiveButton("Rate Us", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       //your custom toast 
      } 
     }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       dialogInterface.cancel(); 
      } 
     }).create().show(); 

    }