제가 지금 리스트뷰를 getview로 만들어서 하고 있는데요..
음 일단 소스는
ArrayAdater 쪽은
public View getView(int position, View convertview, ViewGroup parent){
View v = convertview;
if(v==null){
LayoutInflater li = (LayoutInflater)con.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v=li.inflate(R.layout.cardlistview, null);
viewHolder = new ViewHolder();
viewHolder.txt2 = (TextView)v.findViewById(R.id.txt_CardUseList);
viewHolder.txt = (TextView)v.findViewById(R.id.txt_CardNumList);
viewHolder.img_card = (ImageView)v.findViewById(R.id.img_CardTypel);
viewHolder.rl = (RelativeLayout)v.findViewById(R.id.lists);
viewHolder.ListViewLongClick = (ListViewLongClick)v.findViewById(R.id.view_View);
v.setTag(viewHolder);
}else{
viewHolder = (ViewHolder)v.getTag();
}
viewHolder.txt.setText(cardList.get(position));
viewHolder.txt2.setText(payCount.get(position)+"");
viewHolder.img_card.setImageResource(cardType.get(position));
viewHolder.ListViewLongClick.setVisibility(v.GONE);
return v;
}
}
class ViewHolder{
RelativeLayout rl = null;
TextView txt = null, txt2=null;
ImageView img_card = null;
ListViewLongClick ListViewLongClick=null;
}
main쪽은
list.setAdapter(cardAdapter);
list.setOnItemLongClickListener(new OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View v,
int position, long id) {
ListView listView = (ListView)arg0;
String cardNum = (String) listView.getItemAtPosition(position);
Toast.makeText(CardManagerActivity.this, cardNum, Toast.LENGTH_LONG).show();
return true;
}
});
이렇습니다..
첫번째 질문이 getItemAtPosition(position) 이부분이 왜
txt값만 가져오는지 알수가없네요 txt2나 다른값들이 올수 있는데 왜 구지 txt값만 가져오나요...
이걸 해결 해주신다면 지금 저는 해당 쪽을 LongClick했을 때 그 부분은 알파값으로 처리하고 싶은데.. 이안에잇는 txt나 이미지들도 다같이 알파로.. setAlpha로 하고 싶은데 이것도 해결해주실분 없나요..
setTag getTag 하라는데.. 어차피 그건 그 list의 전체값이지않나요 저코드서
viewHolder.txt.setTag(position); 하고 이벤트서 TextView T = (TextView)viewHolder.txt.getTag(해당 position값);을 줘도 null만뜨고... 왜그런걸까요..