버튼을 클릭하면 진행률 대화 상자가 표시되지 않고 다른 활동에 직접 문제가 있습니다. 내가하고 싶은 일은 다른 활동에 가기 전에 진행 대화 상자가 나타나는 것입니다. btn_create
이 클릭되었을 때 보여주는 멋진 팝업 대화 상자를 얻으려고하는데 그냥 보이지 않습니다. 누구에게 해결책이 있습니까?다른 활동 클래스에 가기 전에 진행 대화 상자가 내 활동에 나타나지 않습니다.
는 다음 순간에 내 코드입니다 :
만 이미 해산시기 대화 상자 다른 활동을 시작하려면DateFormat formatDateTime = DateFormat.getDateTimeInstance();
Calendar mCurrentDate = Calendar.getInstance();
private EditText mEventTitle;
private EditText mEventLoc;
private EditText mEventDesc;
private TextView text_date;
private TextView text_time;
private ImageButton btn_date;
private ImageButton btn_time;
private Button btn_create;
private Button btn_discard;
private int day,month,year,hour,min;
private DatabaseReference mEventDatabase;
private DatabaseReference mUsersDatabase;
private FirebaseUser mCurrentUser;
private ProgressDialog mPDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_new_event);
mEventTitle = (EditText) findViewById(R.id.eventTitle);
mEventLoc=(EditText)findViewById(R.id.eventLocation);
mEventDesc=(EditText)findViewById(R.id.eventDesc);
text_date = (TextView) findViewById(R.id.eventDate);
text_time = (TextView) findViewById(R.id.eventTime);
btn_date = (ImageButton) findViewById(R.id.pickDateBtn);
btn_time = (ImageButton) findViewById(R.id.pickTimeBtn);
btn_create=(Button)findViewById(R.id.createEvent);
btn_discard=(Button)findViewById(R.id.discardEvent);
mPDialog = new ProgressDialog(AddNewEvent.this);
mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();
mEventDatabase = FirebaseDatabase.getInstance().getReference().child("Event");
mUsersDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(mCurrentUser.getUid());
btn_create.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateEvent();
}
});
}
private void updateEvent() {
mPDialog.setTitle("Posting...");
mPDialog.setMessage("Please wait...");
mPDialog.setCanceledOnTouchOutside(false);
String d = text_date.getText().toString();
String t = text_time.getText().toString();
final String dt = d+" "+t;
final String title_val = mEventTitle.getText().toString().trim();
final String loc_val = mEventLoc.getText().toString().trim();
final String desc_val = mEventDesc.getText().toString().trim();
final String current_uid = mCurrentUser.getUid();
if(!TextUtils.isEmpty(title_val) && !TextUtils.isEmpty(loc_val) && !TextUtils.isEmpty(desc_val) && !TextUtils.isEmpty(dt)){
mPDialog.show();
final DatabaseReference newEvent = mEventDatabase.push();
SimpleDateFormat df = new SimpleDateFormat("EEE, d MMM yyyy 'at' hh:mma");
Date date = new Date();
final String currentDate = df.format(date);
mUsersDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
newEvent.child("title").setValue(title_val);
newEvent.child("location").setValue(loc_val);
newEvent.child("desc").setValue(desc_val);
newEvent.child("date&time").setValue(dt);
newEvent.child("uid").setValue(current_uid);
newEvent.child("postDate").setValue(currentDate);
newEvent.child("username").setValue(dataSnapshot.child("name").getValue());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mPDialog.dismiss();
Intent mainIntent = new Intent(AddNewEvent.this, UpcomingEvent.class);
mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(mainIntent);
finish();
}
}
postdelayed 처리기를 사용하여 몇 초 동안 누른 다음 활동을 시작하십시오. –
이것은 대화 표시 코드가 비동기이기 때문입니다. 대화 상자 **를 표시하면 ** 코드가 일시 중지되지 않고 정렬 작업이 수행되지 않습니다. 대화 상자가 생성 된 것과 동일한 기능으로 대화 상자를 닫으므로 장치가 표시되기 바로 전에 발생합니다. –
'mPDialog.show();'가 호출되는지 확인 하시겠습니까? – nhoxbypass