처음에는 커스텀 다이얼로그를 쓰지 않고 기본 형식으로 하여서
텍스트를 setMessage로 표시하고, 다이얼로그 버튼의 리스너에서 다시 setMessage를 사용하는 방법을 썼습니다.
final String memo = readTextfile("/memo.txt", false);
alert = new AlertDialog.Builder(this)
.setTitle("메모 보기")
.setMessage(memo)
.setPositiveButton("닫기",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
})
.setNegativeButton("메모 복호화",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
alert.setMessage(SEEDDEC(memo));
}
});
alert.show();
그러나 이 방식을 사용하게 되면, 메모 복호화 버튼이 동작하지 않습니다(그냥 다이얼로그가 닫힙니다).
두번째 생각한 방법은 커스텀 다이얼로그를 이용하여 버튼에 커스텀 다이얼로그의 레이아웃 안의 텍스트뷰에 setText를 쓰는 방법이었는데요,
이 방법의 경우 다이얼로그가 show되었을때 텍스트뷰의 내용을 수정하는 방법을 모르겠습니다.
아래처럼 코드를 썼을때는 alert.show();위의 setText에서 에러가 났구요
final String memo = readTextfile("/memo.txt", false);
final LinearLayout linear = (LinearLayout) View.inflate(this,
R.layout.dialog_view_memo, null);
alert = new AlertDialog.Builder(this)
.setTitle("메모 보기")
.setView(linear)
.setPositiveButton("닫기",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
})
.setNegativeButton("메모 복호화",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
memoview.setText(SEEDDEC(memo));
}
});
memoview = (TextView) findViewById(R.id.memotext);
memoview.setText(memo);
alert.show();
memoview.setText(memo);를 삭제해도 복호화 버튼 리스너의 setText에서 에러가 납니다.
고수분들의 도움을 구합니다 ㅜㅜ