안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요..다들 고생 많으십니다.
배가 엄청고픈 허접한 초보 개발자 질문 올립니다. 부디 답변 좀 부탁드리겠습니다.
위처럼 리스트 뷰가 잇는데요..
아래 뷰에서 떨어진 버튼을 클릭하면 특정한 Row 의 뷰에 있는 값을 얻을 수 있는 방법이 무엇인지요.?
아래 코드처럼 하면 ListView의 count 는 읽어 오겟는데요..
MyList ==> 리스트 뷰명입니다.
Button btnChk = (Button)findViewById(R.id.btnchk);
btnChk.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
btnChk.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
String ListCnt = Integer.toString(MyList.getCount()); // ListView 의 총 갯수
Toast.makeText(ListIconText.this, "총갯수 = "+ ListCnt , Toast.LENGTH_SHORT).show();
// 이 버튼을 클릭하면 ListView 에 그려진 3개의 row 로 배열 형식으로 접근해서
// 원하는 row 의 값을 얻을수 있게 접근을 어떻게 해야 하는지요..?
// 이 버튼을 클릭하면 ListView 에 그려진 3개의 row 로 배열 형식으로 접근해서
// 원하는 row 의 값을 얻을수 있게 접근을 어떻게 해야 하는지요..?
for(int i=0 ; i < ListCnt ; i ++ ){
MyList(배열 position ??).findViewById(R.id.list).setText("변경변경"); // ??? 이런 형식으로 접근을 못할 런지요??
}
}
});
}
});
이미지 링크가 안되네요.. 첨부 파일로 첨부 했습니다.
부탁드립니다... 감사합니다.
2011.02.20 00:41:07
답변 너무나도 감사드립니다. .
getView 에서 모든 처리가 끝난 상태에서 화면에 보이지만,
버튼의 리스너 처럼 해당 뷰의 속성(이미지, text) 등이 바꿀수 있엇기에..
혹시 저렇게 직접 접근해서 될 수 있지 않을까 해서 질문 드렸습니다.
정말 방법이 없을까요?? 훔..
답변 주신 말씀은 뷰를 생성시부터 원하는 값들을 대입해서 생성해야 한다는 말씀이신것 같습니다.
제가 원하는 바는 이미 그려진 뷰를 동적으로 수정한다는 것인데요..
리스트 뷰에 속한 버튼 또는 그외의 것을 크릭했을 경우
그 뷰에 속한 다른 뷰들을 없애거나(gone) 값을 바꾸거나 할 수 있었습니다.
다만, 맴버가 아닌 ??? ( 명칭은 잘은 모르겠습니다만 ),
그 외의 클래스에서 해당 뷰를 (뷰의 이름을 알고 있다면..) 직접 접근해서 컨트롤 할 수 있는 방법이 있지 않을까 합니다...
쉽게 말해 웹프로그램처럼 말이지요 ㅠㅠ; 너무 무식한 말인지 모르겠습니다. ;;
아..해당 ListView 의 갯수도 알고 있는 상태에서 특정 Row 에 직접 접근이 정말 불가능 한건지요??
아훙... 정말 답답해 미치겠습니다. ㅠㅠ;...




접근 방식이 틀렸습니다.
리스트뷰 같은 어댑터뷰들은 Data를 조작하여 이를 뷰에 반영해야 합니다.
뷰를 직접 만지면 뷰의 재활용이라는 점때문에 스크롤만 해도 다 망가집니다.
어댑터에 배열이나 ArrayList 같은걸 전달하실건데요... 그 배열 혹은 ArrayList의 내용을 만지면
어댑터뷰에 적용할 수 있습니다.