마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

BaseAdapter에서 Activity로 값을 전달하는 방법이 있나요?

0 추천
A라는 Activity에서 GridView를 사용중입니다.

 

GridView는 BaseAdapter를 상속받아서 사용하고 있는데

GridView안에 CheckBox가 있는데 이 CheckBox를 선택되면

A Activity에 선택된 CheckBox의 Data를 전달하고 싶습니다.

 

야매로 하면 가능할 것 같은데 혹시 정석? 적인 방법이 있을지 궁금합니다.

 

선배님들 도와주시면 감사하겠습니다.
Goni2 (770 포인트) 님이 2015년 3월 3일 질문

2개의 답변

+1 추천
baseadapter을 사용하신다면

그 안에 오버라이드 한 getView 함수가 있을 거에요.

거기서 checkbox 를 클릭했을 때, clicklistener을 달아서,

정보를 전달하면 되는데 자세하게 어떤 것을 원하시는건가요?

예를 들어서,

getView 함수에서

convertView = inflater.inflate(R.layout.그리드뷰 정의 xml, parent, false);이렇게 선언하신다음,

ImageView test = (ImageView) convertView.findViewById(R.id.이미지); 이런식으로 그리드 뷰에 들어갈 이미지 선언을 하죠.

그리고 뭐 radiobutton으로 체크박스를 구현하셨다고 하면

RadioButton testButton = (RadioButton) convertView.findViewById(R.id.버튼아이디);

testButton.setOnClickListener 하신다음

if(testButton.setChecked(true){

     checkBox의 data 전송;

} 이런식으로 하면 되죠.
Djleeee (13,180 포인트) 님이 2015년 3월 3일 답변
if(testButton.setChecked(true){

     checkBox의 data 전송;

}

여기서 데이터 전송을 어떤 방법으로 해야하는 건가요?
A Activity에 함수를 만들어서 그 함수를 호출해서 데이터를 전역변수에 넣어
놓는게 합리적일까요?

전 intent같은 방식이 없을까 하고 고민중이라서요 ...
밑에 nicehee님 말씀도 맞습니다.
아니면 baseadapter을 사용하신다 했는데, 그 뜻은 다른 class 파일로 만드셧따는거죠??
그럼 그 뭐더라 처음에 그 constructor에다가 A Activity가 참조하고 픈 내용을 다 집어넣으세요. 예를 들면
public class CheckBox extends BaseAdapter{
    Context mCon;
    String mDatas;
    public CheckBox(Context c, String datas){
         this.mCon = c;
          this.mDatas = datas;
}

이런식으로 설정하신다음, A Activity에서는
CheckBox test = new CheckBox(Acitivity.this, 넣고 싶은 것들);
이런식으로 하시면
CheckBox class의 getview에서 버튼.setchecked에서 그 값을 이용하여 전송할 수 있겠죠?
0 추천
BaseAdapter를 A라는 Activity안에서 구현하면

GridView안에 CheckBox에 리스너를 달아서 변경이 되면

A Activity의 메소드를 바로 콜할수 있지용
nicehee (73,100 포인트) 님이 2015년 3월 3일 답변
...