我正在開發Android Studio的應用程序,其中使用Firebase,我使用地圖顯示不同的內容。用戶第一次進入MapsActivity時,警告對話框會彈出一些信息。我的問題是當按下「確定」按鈕時,應用程序會自動複製活動並運行「新」活動。當我按下後退按鈕時,我可以再次回到「原始」活動。我不明白它爲什麼這樣做。任何想法爲什麼?Android - alertdialog後的地圖重複
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
DatabaseReference database;
DatabaseReference userRef;
FirebaseUser user;
String userId;
String username;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
user = FirebaseAuth.getInstance().getCurrentUser();
userId = user.getUid();
username = user.getDisplayName();
database = FirebaseDatabase.getInstance().getReference();
final SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
userRef = database.child("User").child(userId);
userRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (!dataSnapshot.hasChild("dialog")){
AlertDialog.Builder dialog = new AlertDialog.Builder(MapsActivity.this);
dialog.setTitle("hi");
dialog.setMessage("Some text");
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
userRef.child("dialog").setValue(true);
}
});
dialog.show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
使用viewCreated並顯示對話框裏面。 –
我沒有使用片段,所以我不能使用onviewCreated – JDoe
mapFragment.getMapAsync(this);在此方法之後運行addValueEventListener()。 –