简体   繁体   English

ListFragment中的自定义ArrayAdapter错误

[英]Custom ArrayAdapter in ListFragment error

I get an error when I try to run the code for my app after trying to add a list view using a custom ArrayAdapter in a class derived from ListFragment . 尝试在使用从ListFragment派生的类中使用自定义ArrayAdapter添加列表视图后尝试为我的应用程序运行代码时遇到错误。

Logcat: Logcat:

09-12 02:21:27.818  31354-31354/com.example.anas.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.anas.myapplication, PID: 31354
    java.lang.NullPointerException
            at com.example.anas.myapplication.adapter.MaalomaListAdapter.getView(MaalomaListAdapter.java:74)

The error is produced in the following line the method getView(): 该错误在方法getView()的以下行中产生:

viewHolder.ivMaaloma.setImageResource(R.drawable.maaloma_bg_1); 
viewHolder.tvMaaloma.setText(maaloma.getText());

To get a clearer idea of what I'm trying to do, this is my custom ArrayAdapter class (I marked error line with a comment): 为了更清楚地了解我要执行的操作,这是我的自定义ArrayAdapter类(我在注释中标记了错误行):

MaalomaListAdapter.java: MaalomaListAdapter.java:

public class MaalomaListAdapter extends ArrayAdapter<Maaloma> {

    private Context context;
    private int resource;
    private List<Maaloma> maalomaList;

    public MaalomaListAdapter(Context context, int resource, List<Maaloma> maalomaList) {
        super(context, resource, maalomaList);

        this.context = context;
        this.resource = resource;
        this.maalomaList = maalomaList;
    }

    public static int getResId(String resName, Class<?> c) {

        try {
            Field idField = c.getDeclaredField(resName);
            return idField.getInt(idField);
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }
    }

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

        ViewHolder viewHolder;

        if(convertView == null) {
            // inflate item layout
            LayoutInflater inflater = ((Activity) this.context).getLayoutInflater();
            convertView = inflater.inflate(this.resource, parent, false);

            // init view holder
            viewHolder = new ViewHolder();
            viewHolder.ivMaaloma = (ImageView) convertView.findViewById(R.id.iv_maaloma_bg);
            viewHolder.tvMaaloma = (TextView) convertView.findViewById(R.id.tv_maaloma);

            convertView.setTag(viewHolder);
        } else {
            // recycling already inflated views
            viewHolder = (ViewHolder) convertView.getTag();
        }

        Maaloma maaloma = maalomaList.get(position);

        //int imageResId = getResId(maaloma.getImage(), Drawable.class);

        /**** ERROR COMES FROM THE FOLLOWING TWO LINES (WHICHEVER WAS FIRST) *****/
        viewHolder.ivMaaloma.setImageResource(R.drawable.maaloma_bg_1); 
        viewHolder.tvMaaloma.setText(maaloma.getText());

        return convertView;

    }

    private static class ViewHolder {
        private ImageView ivMaaloma;
        private TextView tvMaaloma;

    }
}

I suppose the error resides in this class only but I'm ready to post more code upon request. 我想错误仅存在于此类中,但我准备根据请求发布更多代码。 Appreciate the time and effort guys. 感谢时间和精力的家伙。

What is the layout you using during error? 错误期间使用的布局是什么?

It is likely that the layout you used do not have R.id.iv_maaloma_bg or R.id.tv_maaloma 您使用的布局可能没有R.id.iv_maaloma_bgR.id.tv_maaloma

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ListFragment中的自定义ArrayAdapter - Custom ArrayAdapter in a ListFragment 在ListFragment中显示自定义ArrayAdapter - Show Custom ArrayAdapter in a ListFragment Android //从对话框刷新ListFragment中的自定义Arrayadapter - Android // Refresh a Custom Arrayadapter in a ListFragment from a Dialog 如何使用自定义ArrayAdapter为ListFragment充气? - How Do I inflate a ListFragment with a custom ArrayAdapter? 在Android上的ListFragment中使用ArrayAdapter获取构造函数错误 - Getting a constructor error with ArrayAdapter in a ListFragment on Android 如何使用自定义ArrayAdapter在MainActivity的选项卡上显示自定义ListFragment - How to display custom ListFragment on MainActivity's tab using custom ArrayAdapter 自定义ArrayAdapter使我的ListFragment行不响应点击 - Custom ArrayAdapter has made my ListFragment rows not respond to clicks 通过自定义ArrayAdapter填充ListFragment中的列表-我的数据未显示但存在于适配器中 - Populate list in ListFragment through custom ArrayAdapter - my data doesn't show but are present in the adapter ListFragment错误 - ListFragment error Android:使用ArrayAdapter在ListFragment中使用不同的布局 - Android: Use different layouts in ListFragment using ArrayAdapter
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM