EditText
의 일부 정보를 입력해야하는 대화 상자가 있습니다. 편집 텍스트가 비어있을 때 양수 버튼을 클릭하면 메시지가있는 Snackbar
이 표시되고 대화 상자가 닫힙니다. 그러나 대화 상자를 다시 열면 앱에 오류가 발생하여 java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first
오류가 발생합니다. 여기닫힌 후 대화 상자를 다시 열 때 응용 프로그램이 충돌하는 경우
내가보기 팽창 한 방법은 다음과 같습니다
LayoutInflater inflater = this.getLayoutInflater();
addVenueDialog = inflater.inflate(R.layout.add_venue_dialog, null);
을 여기에 자바 코드 편집 텍스트가 비어 있거나하지 않으면 대화 상자를 열고 확인 뒤에 : 나는 이유를 알고하지 않습니다
case R.id.nav_add_venue:
if (dialog == null) {
LayoutInflater inflater = this.getLayoutInflater();
View addVenueDialog = inflater.inflate(R.layout.add_venue_dialog, null);
vName = (EditText) addVenueDialog.findViewById(R.id.vName);
vAddress = (EditText) addVenueDialog.findViewById(R.id.vAddress);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Title");
builder.setView(addVenueDialog);
builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if (isNetworkAvailable()) {
if (vName.getText().toString().isEmpty()) {
Snackbar snackbar = Snackbar
.make(coordinatorLayout, "V name cannot be empty", Snackbar.LENGTH_SHORT);
snackbar.show();
} else if (vAddress.getText().toString().isEmpty()) {
Snackbar snackbar = Snackbar
.make(coordinatorLayout, "V address cannot be empty", Snackbar.LENGTH_SHORT);
snackbar.show();
} else {
mDatabase.child("vs").child(user.getUid()).child("V name").setValue(vName.getText().toString());
mDatabase.child("vs").child(user.getUid()).child("V address").setValue(vAddress.getText().toString());
}
} else {
Snackbar snackbar = Snackbar
.make(coordinatorLayout, "No internet connection", Snackbar.LENGTH_SHORT);
snackbar.show();
}
}
});
dialog = builder.create();
}
dialog.show();
break;
닫은 후에 다시 한 번 대화 상자를 열면 앱이 충돌합니다.
알려 주시기 바랍니다.
크래시가 있기 때문에 오류 메시지에 표시된대로 이미 다른 곳에 추가 한보기를 추가하고 있습니다. 즉, 경고 대화 상자를 처음 만들 때. 그런 대화 상자를 다시 만들면 다시보기를 다시 추가 할 수 없습니다. – njzk2
@ njzk2 그래서 해결책은 무엇입니까? –