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

position 가져오기 질문이요

0 추천
 
class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return listArr.size();
}
 
@Override
public Object getItem(int position) {
return listArr.get(position);
}
 
@Override
public long getItemId(int position) {
return position;
}
 
@Override
public View getView(int position, View convertView, ViewGroup parent) {
 
LayoutInflater inf = getLayoutInflater();
View v1 = inf.inflate(R.layout.list_search, null);
tv = (TextView) v1.findViewById(R.id.txSearch);
bt = (Button) v1.findViewById(R.id.btSearch);
 
if (listArr.size() > 0) {
tv.setText(listArr.get(position).getStrKeyword());
bt.setText(listArr.get(position).getStrUserId());
}
return v1;
}
 
}
 
public void OnClickMethod(View v) {
try{
if (socket != null && socket.isConnected()) {
Log.d("송신1","송신1");
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
 
long time = System.currentTimeMillis();
Date date = new Date(time);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
 
mUserId=listArr.get(0).getStrUserId();
 
Log.d("mUserId",mUserId);
String thisTime = sdf.format(date);
String strSend = mUserId + "#" +"\t"+StaticObj.mId+ "#" + thisTime;
 
out.println(strSend);
out.flush();}
}catch (Exception e) {
handler.post(new Runnable() {
public void run() {
Chatting.showDialog(mainac, "", "mainac2");
}
});
}
 
flag = false;
intent = new Intent(TabSearch.this, Chatting.class);
intent.putExtra("id", listArr.get(0).getStrUserId());
startActivity(intent);
finish();
}
 
 
소스 일부분입니다 listArr 에 검색조건에 따라서 해당 아이디가 여러개 뜨는데요 
 
현재는 0번째 값만 "intent.putExtra("id", listArr.get(0).getStrUserId());"   넘기고 있습니다. 
 
저 부분을 intent.putExtra("id", listArr.get(position).getStrUserId());  이렇게 포지션 을 어댑터에서 받아 오고 싶은데
 
지금은 버튼 10개가 이름이 다 달라도 어떤 버튼을 눌르든 결국 0번째 값이 넘어가게되어있는데
 
포지션을 받아와 해당 버튼의 값을 넘기고 싶습니다. 
 
도와주세요 고수님들 
숀화이트 (3,310 포인트) 님이 2014년 2월 26일 질문
숀화이트님이 2014년 2월 26일 수정
흐응.. 그림이 잘 안그려지네요 ;; 화면 이미지 하나만 올려주세요
이미지 추가 했습니다 ㅜㅜ 도와주세요
음.. 혹시 클릭 메소드를 사용해야하는 특별한 이유가 있나요?
위 코드에는 안보이지만 리스트뷰에 붙여서 위의 어댑터를 장착하셨을텐데 방방님 말씀처럼 리스트뷰의 아이템클릭리스너를 쓰시면 원하시는 대로 구현이 편할 것 같아요. 어댑터내에서 처리해주려니 저도 방법이 잘 안떠오르네요 ;;

2개의 답변

+1 추천
 
채택된 답변
ListView listView = (ListView) findViewById(R.id.listview_id);
listView.setOnItemClickListener(new OnItemClickListener() {
	@Override
	public void onItemClick(AdapterView parent, View view, int position, long id) {
		// 요기서 setadapter 한 인자값을 int position 으로 갖고오면 되지않을까요?
	}
});

 

bangbang (8,820 포인트) 님이 2014년 2월 26일 답변
숀화이트님이 2014년 4월 2일 채택됨
–3 추천
position 값을 따로 빼서

쓰면 되겠네요..

 

중간에 userID에  get(0)....로 하시면 무조건 0번째가 들어가긴 하죠...

 

이런 질문은..쫌..-_-....에휴..
정품인증 (1,750 포인트) 님이 2014년 2월 26일 답변
포지션을 따로 빼오는데 0번째꺼 클릭하면 8번째 값이 넘어가고
3번째꺼 클릭하면 6번째게 값이 넘어가고
제대로 된 값이 넘어 가는거 같지 않아 질문 올렸습니다.
질문에 이런질문 저런질문이 있는건가요 ..
잘하는척 오진다... 저분 여친 없을 듯 ^^;
...