AlertDialog 의 Android 문서에서는 AlertDialog 에서 사용자 정의보기를 설정하기위한 다음 지침과 예제를 제공합니다.
더 복잡한보기를 표시하려면 "body"라는 FrameLayout을 찾아 여기에보기를 추가합니다.
FrameLayout fl = (FrameLayout) findViewById(R.id.body);
fl.add(myView, new LayoutParams(FILL_PARENT, WRAP_CONTENT));
먼저 add()
오타이며 addView()
.
R.id.body를 사용하는 첫 번째 줄이 혼란 스럽습니다. AlertDialog의 본문 요소 인 것 같습니다 ...하지만 내 코드 b / c에 입력 할 수는 없으며 컴파일 오류가 발생합니다. R.id.body는 어디에서 정의되거나 할당됩니까?
여기 내 코드가 있습니다. setView(findViewById(R.layout.whatever)
빌더 에서 사용하려고했지만 작동하지 않았습니다. 나는 그것을 수동으로 부 풀리지 않았기 때문에 가정하고 있습니까?
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
.setCancelable(false)
.setPositiveButton("Go", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
EditText textBox = (EditText) findViewById(R.id.textbox);
doStuff();
}
});
FrameLayout f1 = (FrameLayout)findViewById(R.id.body /*CURRENTLY an ERROR*/);
f1.addView(findViewById(R.layout.dialog_view));
AlertDialog alert = builder.create();
alert.show();
.setView(getLayoutInflater().inflate(R.layout.dialog_view, null))
빌더에 추가 하십시오. 아래 Sergio Viudes에 대한 크레딧.