안드로이드 개발 질문/답변
(글 수 45,052)
액티비티에서 다이얼로그 띄우면 다이얼로그에 에디트텍스트와 텍스트뷰가 있습니다.
에디트텍스트값의 변화에 따라서 텍스트뷰내용을 컨트롤 하려고 하는데요.
일단 에디트값 변화에 따라서 로그는 잘 들어갑니다
문제는 텍스트뷰 값이 변하지 않는다는 건데요.
지금 레이아웃 v 를 inflate할때 레이아웃에서 가져오고 있는데, 아무래도 이게 아니라 생성된 다이얼로그의 텍스트뷰 아이디 값을 가져되는건가 싶은데,
다이얼로그의 텍스트뷰를 잡는방법을 모르겠네요.
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
Log.e("온텍스트","들어옴");
LayoutInflater inflater =(LayoutInflater)getLayoutInflater();
LinearLayout v =(LinearLayout)inflater.inflate(R.layout.img_num,null);
TextView tv_message2 =(TextView)v.findViewById(R.id.img_num_tv_message2);
if("".equals(s.toString())){
Log.e("비교","널");
tv_message2.setText("몇장을 사용하시겠습니까?");
}else if("0".equals(s.toString())){
tv_message2.setText("사용하지 않으시겠습니까?");
}else if("1".equals(s.toString())){
Log.e("비교","1");
tv_message2.setText("소문");
tv_message2.setTextColor(Color.parseColor("#000000"));
}else if("2".equals(s.toString())){
Log.e("비교","2");
tv_message2.setText("알림");
tv_message2.setTextColor(Color.parseColor("#00FF00"));
}else if("3".equals(s.toString())){
Log.e("비교","3");
tv_message2.setText(" 편지");
tv_message2.setTextColor(Color.parseColor("#800080"));
}else {
Log.e("비교","엘즈");
tv_message2.setText("최대 3장만 사용됩니다.");
}
}
지금 보니 문제가 저게 아니네요.
온텍스트체인지에 들어오면서 기존의 다이얼로그 뷰를 알 방법이 없어서 그렇네요
다이얼로그 생성당시 다이얼로그가 참조하던 뷰를 인자로 전달하여 테스트 함수를 만들어보니 거기서는 잘 동작합니다.
그런데 에디트텍스트의 변화를 갑지해서 텍스트를 바꾸는 동작을 하려고 하니, 뷰를 인자로 받아올수가 없으니 안돼는듯...
우회할 방법이 없을까요