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

BaseAdapter 에서 Activity 띄우는 질문입니다.

0 추천
BaseAdapter 에서 뿌려진 리스트 옆의 버튼을 클릭 하였을 때 새로운 Activity 를 띄우면서 클릭한 값을 넘겨서
그거에 대한 상세 정보를 뿌려주는 작업을 하려고 합니다
값을 넘기는 부분은 get을 써서 할 수 있다지만 나머지 부분에 대해서는 이해가 안가서 글을 올립니다.
 
여기에서는 간단하게 오픈만 하려고 Activty에서 다른건 안주고 레이아웃만 불러옵니다
 
BaseAdapter 부분
 
public class frgAdapter001 extends BaseAdapter {
 
Context gccontext;
ArrayList<frgDataList001> galist;
LayoutInflater glinflater;
int gilayout;
 
public frgAdapter001(Context ctx, int layout, ArrayList<frgDataList001>list)
{
this.gccontext = ctx;
this.galist = list;
this.gilayout = layout;
 
glinflater = (LayoutInflater)gccontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
 
@Override
public int getCount() {
return galist.size();
}
 
public Context getcontect()
{
return gccontext;
}
 
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return galist.get(position);
}
 
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
 
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null)
{
convertView = glinflater.inflate(gilayout, null);
}
 
 
Button tvbtn = (Button)convertView.findViewById(R.id.tvbtn);
 
tvbtn.setOnClickListener(new OnClickListener() {
 
@Override
public void onClick(View arg0) {
 //TODO Auto-generated method stub
Intent intent0 = new Intent(gccontext.getApplicationContext(),cmdetail_cust.class);
 
 
gccontext.startActivity(intent0);
 
}
});
 
return convertView;
}
 
}
 

 

Noswind (2,330 포인트) 님이 2014년 7월 4일 질문
Noswind님이 2014년 7월 4일 reopened
implements OnClickListener 를 추가 하시고, 각 버튼에 대해 onClick을 달아 주셔야 합니다.
구분은 뭐 View 객체에 setTag 에 position이나 기타 구분 할 정보를 입력하셔도 될듯하구요.
그러면 onClick(View view ...) 에서 view.getTag 값으로 해당 버튼에 대해  구분자로 사용할 값을 가지고와서 gccontext.startActivity 시키면 되겠네요.
intent0.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
새로운 TASK를 열수 있게 해줬어야 하는거네요 ㅠ

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...