我创建了一个简单的android应用程序,其中包含ListView
。我在下面有自定义列表适配器:
package com.example.android.efaas;
import java.util.List;
import com.example.android.R;
import com.example.android.efaas.bean.ListItem;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class CustomListAdapter extends BaseAdapter {
LayoutInflater inflater = null;
Context ctx;
List<ListItem> data;
public CustomListAdapter(Activity activity, List<ListItem> data){
ctx = activity;
this.data = data;
inflater = ( LayoutInflater )ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int pos) {
return pos;
}
@Override
public long getItemId(int pos) {
return pos;
}
@Override
public View getView(int pos, View view, ViewGroup vgroup) {
View rowView = inflater.inflate(R.layout.list_menu, null);
ImageView img = (ImageView) rowView.findViewById(R.id.list_menu_image);
TextView title = (TextView) rowView.findViewById(R.id.list_menu_title);
ListItem item = data.get(pos);
img.setImageResource(item.getId());
title.setText(item.getTitle());
return rowView;
}
public ListItem getListItem(int pos){
return data.get(pos);
}
}
我有一个公共方法getListItem
,我试图在ListView
onClick期间调用它但不知何故我似乎无法使它工作。这是问题的形象:
如何解决此问题?
答案 0 :(得分:4)
您应该将adapter.getAdapter()
转换为CustomListAdapter
类,然后
答案 1 :(得分:2)
编译时错误是因为adapter
不是您的CustomListAdapter
。您可以做的是将adapter.getAdapter()
的返回值转换为CustomListAdapter
。相反,您应该使用已有的东西来检索位置上的对象。像getItemAtPosition(int)