안드로이드 개발 질문/답변
(글 수 45,052)
android.R.layout.simple_list_item_single_choice 를 사용하면 고민안해도 될 문제인데요.
저는 image와 text + btn 까지 있는 list를 사용하고 싶어서,
MyListAdapter라는 class를 사용해야하거든요.
그런데 문제는 class MyListAdapter에서 item 선택할 당시의 position을
class A에서 delete button 클릭시에는 알 방법이 없어서요.
혹시 전역변수 같은거 안쓰고, 알 수 있는 방법이 있을까요 ^^?
고수님들의 조언 부탁드려요~
class A
{
case R.id.delete:
int id;
//TODO:list에서 click한 경우의 position을 세팅해줘야함.
id=MyList.getCheckedItemPosition();
if(id != ListView.INVALID_POSITION){
arrayCardItem.remove(id);
MyList.clearChoices();
MyAdapter.notifyDataSetChanged();
}
break;
}
class MyListAdapter
{
public View getView(int position, View convertView, ViewGroup parent){
final int pos = position;
if(convertView == null){
convertView = Inflater.inflate(layout,parent,false);
}
ImageView img = (ImageView)convertView.findViewById(R.id.listImg);
img.setImageResource(arraySrc.get(position).Icon);
TextView txt = (TextView)convertView.findViewById(R.id.listText);
txt.setText(arraySrc.get(position).Name);
Button btn = (Button)convertView.findViewById(R.id.listBtn);
btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
String str = arraySrc.get(pos).Name + "를 선택했습니다.";
Toast.makeText(mainContext, str, Toast.LENGTH_SHORT).show();
//Intent intent = new Intent(mainContext, androidFirst.class);
//mainContext.startActivity(intent);
}
});
return convertView;
}
}
저는 image와 text + btn 까지 있는 list를 사용하고 싶어서,
MyListAdapter라는 class를 사용해야하거든요.
그런데 문제는 class MyListAdapter에서 item 선택할 당시의 position을
class A에서 delete button 클릭시에는 알 방법이 없어서요.
혹시 전역변수 같은거 안쓰고, 알 수 있는 방법이 있을까요 ^^?
고수님들의 조언 부탁드려요~
class A
{
case R.id.delete:
int id;
//TODO:list에서 click한 경우의 position을 세팅해줘야함.
id=MyList.getCheckedItemPosition();
if(id != ListView.INVALID_POSITION){
arrayCardItem.remove(id);
MyList.clearChoices();
MyAdapter.notifyDataSetChanged();
}
break;
}
class MyListAdapter
{
public View getView(int position, View convertView, ViewGroup parent){
final int pos = position;
if(convertView == null){
convertView = Inflater.inflate(layout,parent,false);
}
ImageView img = (ImageView)convertView.findViewById(R.id.listImg);
img.setImageResource(arraySrc.get(position).Icon);
TextView txt = (TextView)convertView.findViewById(R.id.listText);
txt.setText(arraySrc.get(position).Name);
Button btn = (Button)convertView.findViewById(R.id.listBtn);
btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
String str = arraySrc.get(pos).Name + "를 선택했습니다.";
Toast.makeText(mainContext, str, Toast.LENGTH_SHORT).show();
//Intent intent = new Intent(mainContext, androidFirst.class);
//mainContext.startActivity(intent);
}
});
return convertView;
}
}



