내가 ListAdapter의 구현을 클릭 항목 행 (보기 클릭이 아니라 목록보기의 버튼)?액세스 개체는
내 작업 클래스는 ... exmaple getName() 메소드 및 다른 사람을위한
내가 ListAdapter의 구현을 클릭 항목 행 (보기 클릭이 아니라 목록보기의 버튼)?액세스 개체는
내 작업 클래스는 ... exmaple getName() 메소드 및 다른 사람을위한
에 작업의 당신의 인스턴스를 변경하여 데이터에 액세스 할 수 있어야합니다 OnClickListener를의 포함 내부 클래스로 구현하면 변수는 내부 클래스에서 액세스 할 수 없습니다. 이 항목에 액세스 할 수있는 더 좋은 방법의
public class TaskAdapter implements ListAdapter, View.OnClickListener {
Context context;
List<Task> tasks;
Task data;
// View adapterView;
public TaskAdapter(Context context, List<Task> tasks) {
super();
this.context = context;
this.tasks = tasks;
} ...
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
data = tasks.get(position);
Button task_menu_bt = (Button)root.findViewById(R.id.taskMenuButton);
task_menu_bt.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
**// How to access current Task data?? i can not do tasks.get(position)**
}
});
final Task data = tasks.get(position);
하나를 작동하는지 그래서 당신은 getItem 메소드를 오버라이드 (override)하는 것입니다, 어댑터 수준에서 TaskAdapter의 기본적 구성원 태스크의 변수를 선언하거나 최종 만들던가 중 하나와 거기서 데이터 소스에서 객체를 반환하십시오.
public Object getItem (int position){
return (Task)tasks.get(position);
}
당신이 사용하고 있기 때문에 당신은
final Task data = tasks.get(position);
[OnItemClickListener] (http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html)를 살펴 봐야합니다. – tolgap
왜'task.get (position)'을 사용할 수 없습니까? – tyczj
@tyczj "다른 메서드로 정의 된 내부 클래스 내부의 최종 변수 데이터를 참조 할 수 없습니다." –