0
이 코드는 listView의 항목을 클릭하면 경고 대화 상자를 표시합니다. 체크 박스 환경 설정을 추가 할 때까지는 모두 잘 돌아갔다. 나중에 다른 대화 상자가 텍스트 문자열을 입력 할 수 있어야한다.AlertDialog에서 체크 상자 레이아웃을 확대하면 텍스트보기 레이아웃이 적용되지 않습니다
AlertDialog.Builder helpBuilder = new AlertDialog.Builder(MyActivity.this);
helpBuilder.setIcon(android.R.drawable.ic_dialog_info);
adb.setTitle("title");
adb.setMessage("message");
helpBuilder.setPositiveButton("positive", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
boolean fileRenameEnabled = settings.getBoolean("text_view", false);
if (fileRenameEnabled == true) {
AlertDialog.Builder adb = new AlertDialog.Builder(MyActivity.this);
LayoutInflater adbInflater = LayoutInflater.from(MyActivity.this);
View inputFilename = adbInflater.inflate(R.layout.dialog_text_view, null);
tv = (TextView) inputFilename.findViewById(R.id.tv);
tv.setHint("hint");
adb.setView(tv);
adb.setTitle("New filename");
adb.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//some code here modifies method1()
method1();
}
});
adb.show();
} else {
method1();
}
}
});
helpBuilder.setNeutralButton("neutral", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Checkbox1Enabled = settings.getBoolean("checkbox1", true);
if (Checkbox1Enabled == true) {
AlertDialog.Builder adb = new AlertDialog.Builder(MyActivity.this);
LayoutInflater adbInflater = LayoutInflater.from(MyActivity.this);
View info = adbInflater.inflate(R.layout.dialog_checkbox1, null);
cb = (CheckBox) info.findViewById(R.id.cb);
cb.setChecked(true);
adb.setView(info);
adb.setTitle("title");
adb.setMessage("message");
adb.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (cb.isChecked() == false) {
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("checkbox1", false);
editor.commit();
Checkbox1Enabled = settings.getBoolean("checkbox1", true);
Log.d(DEBUG_TAG, "Checkbox1Enabled: " + Checkbox1Enabled);
}
method2();
}
});
adb.show();
} else {
method2();
}
}
});
AlertDialog helpDialog = helpBuilder.create();
helpDialog.show();
}
});
}
사실은 내가 중립 버튼의 onClickListener
내부 거의 같은 일을하고 있어요이다; 유일한 차이점은 체크 박스 (대신 작동 ...) 대신 AlertDialog.Builder
에있는 textView를 부 풀린다는 것입니다.
는 예외입니다 :
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
어떤 도움이 많이 감사합니다. 감사합니다.
OMG. 나는 다른 말을하지 않는다. 고맙습니다. – dentex