0

我有一个自定义列表适配器,它在一个片段中膨胀,并且该片段嵌入在一个活动中,我想实现一个接口来处理从活动类中对该适配器上的图像的点击。但我得到空指针异常。 . 这是我的代码:

这是我的自定义适配器类的一部分:

public ActionSelection mCallBack;
public interface ActionSelection {
    public void onActionSelected(int position);
}

public View getView(int position, View convertView, ViewGroup parent) {

    View view = convertView;

    LayoutInflater inflater = (LayoutInflater) getContext().
            getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    view = inflater.inflate(R.layout.main_list_item, null);

    // Obtain current mainListItem using position
    MainListItem item = mainListItems.get(position);

    // Set the custom view
    if (item != null) {

        ((SmartImageView) view.findViewById(R.id.imageview_mainlist_profile_picture)).
                setImageUrl(item.getProfile_picture());

        ((TextView) view.findViewById(R.id.textview_mainlist_fullname)).
                setText(item.getFullname());

        ((TextView) view.findViewById(R.id.textview_mainlist_username)).
                setText(item.getUsername());

        ((ImageView) view.findViewById(R.id.imageview_mainlist_action)).
                setImageResource(item.getAction());

        ImageView action = (ImageView) (view.findViewById(R.id.imageview_mainlist_action));
        action.setId(position);

        action.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mCallBack.onActionSelected(5);
            }
        });


    }



在我的 MainActivity 上,我使用以下代码实现了接口:

@Override
public void onActionSelected(int position) {
    Log.v("test", String.valueOf(position));
}
4

1 回答 1

0

您永远不会将mCallBack变量设置为任何值。例如,您可以在适配器的构造函数中传递它。

于 2013-09-27T22:37:56.230 回答