즉각적인 도움이 필요합니다. 코드는 잘 작동하는 데 사용하지만, 잠시 후 나는 평가가 t work anymore and gives "the specified child already has a parent, call removeView() first..." on the
alertDialog.show을() 아무튼 발견,`라인 :지정된 자식이 이미 비정상보기에서 상위 오류가 있습니다.
///// Rating bar initialising
Context mContext = ShowActivity.this;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
layout = inflater.inflate(R.layout.custom_rate_dialog, (ViewGroup) findViewById(R.id.layout_root));
final RatingBar rating_indicator = (RatingBar)findViewById(R.id.rating_bar_cafe_indicator);
final float current_rating = (float)mDbHelper.getInt(mRowId, type, RATE_COLUMN);
rating_indicator.setRating(current_rating);
rateDialogBuilder = new AlertDialog.Builder(ShowActivity.this);
rateDialogBuilder.setView(layout);
rateDialogBuilder.setCancelable(false);
rateDialogBuilder.setIcon(R.drawable.rate_star_med_on);
rateDialogBuilder.setTitle("RATE IT!");
rateDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
rating_indicator.setRating(mDbHelper.getInt(mRowId, type, RATE_COLUMN));
((ViewGroup)layout.getParent()).removeView(layout);
dialog.cancel();
}
});
ratingText = (TextView) layout.findViewById(R.id.rate_text);
rating = (RatingBar) layout.findViewById(R.id.rating_bar_cafe);
rating.setRating(current_rating);
rating.setStepSize(1);
rating.setOnRatingBarChangeListener(ShowActivity.this);
if ((int)current_rating != 0) ratingText.setText("Your rating: " + (int)current_rating);
Button rateButton = (Button) findViewById(R.id.button_rate);
rateButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
AlertDialog alertDialog = rateDialogBuilder.create();
alertDialog.show();
}
});
//////
이상한 일을, 나는 그것이 충돌하지 않는 removeAllViews()
또는 removeView()
단지 alertDialog.show();
전에 호출하는 경우 만 열립니다 등급과 현재 활동 또는 재능을 모두 볼 수있는 대화를 엉망으로 만든다. 또한이 문제는 코드에서 어딘가에있을 수 있는데, 이는 제대로 작동하기 위해 사용 되었기 때문에, 어떤 아이디어를 찾거나 어떻게 바꿔야 작동하게 만들었습니까?
에 대한
View
로 설정하는 것을 레이아웃을 팽창하려는 경우, 당신은 당신이rateDialogBuilder.setView(layout);
을 다른 부모에 추가하고 오류 가리키는? –
그 질문에, alertDialog.show(); – user975869