Android:尝试在空对象引用上调用虚拟方法“void android.widget.ListView.setAdapter(android.widget.ListAdapter)”

2024-04-26

我正在尝试创建一个列表视图,其中包含另一个活动中的图片和文本。我不太专注于android编程,所以基本上就像android编程的新手一样,我在调试我的应用程序时遇到困难。请帮我 :)

Error :

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
  at com.fingervoiz.app.tamla.Activity.ListDataIdntActivity.onCreate(ListDataIdntActivity.java:53)

完整的 LogCat:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.fingervoiz.app.tamla, PID: 14968
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fingervoiz.app.tamla/com.fingervoiz.app.tamla.Activity.ListDataIdntActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2534)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2608)
  at android.app.ActivityThread.access$800(ActivityThread.java:178)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470)
  at android.os.Handler.dispatchMessage(Handler.java:111)
  at android.os.Looper.loop(Looper.java:194)
  at android.app.ActivityThread.main(ActivityThread.java:5637)
  at java.lang.reflect.Method.invoke(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
  at com.fingervoiz.app.tamla.Activity.ListDataIdntActivity.onCreate(ListDataIdntActivity.java:53)
  at android.app.Activity.performCreate(Activity.java:6092)
  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2481)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2608) 
  at android.app.ActivityThread.access$800(ActivityThread.java:178) 
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470) 
  at android.os.Handler.dispatchMessage(Handler.java:111) 
  at android.os.Looper.loop(Looper.java:194) 
  at android.app.ActivityThread.main(ActivityThread.java:5637) 
  at java.lang.reflect.Method.invoke(Native Method) 
  at java.lang.reflect.Method.invoke(Method.java:372) 
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 

我的代码:(适配器)

public class ListDIDadapter extends ArrayAdapter<TamlaDataIdntModel> {

    Context context;
    int layoutResID;

    ArrayList<TamlaDataIdntModel> dataToList = new ArrayList<TamlaDataIdntModel>();

    public ListDIDadapter(Context context, int layoutResID, ArrayList<TamlaDataIdntModel> dataToList){
        super(context,layoutResID,dataToList);
        this.layoutResID = layoutResID;
        this.context = context;
        this.dataToList = dataToList;
    }

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

        View view = convertView;
        Holder holder = null;

        if (view == null){
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            view = inflater.inflate(layoutResID,parent,false);

            holder = new Holder();
            holder.txtFname = (TextView) view.findViewById(R.id.did_item_fullname);
            holder.txtGender = (TextView) view.findViewById(R.id.did_item_gender);
            holder.txtBplace = (TextView) view.findViewById(R.id.did_item_bplace);
            holder.txtBday = (TextView) view.findViewById(R.id.did_item_bday);
            holder.txtAddress = (TextView) view.findViewById(R.id.did_item_address);
            holder.imgProfile = (ImageView) view.findViewById(R.id.did_item_profilepic);
            view.setTag(holder);
        }else {
            holder = (Holder) view.getTag();
        }

        //FILL
        TamlaDataIdntModel dids = dataToList.get(position);
        if(dids != null){
            holder.txtFname.setText(dids.get_lname()+", "+dids.get_fname()+" "+dids.get_mname());
            holder.txtGender.setText(dids.get_gender());
            holder.txtBplace.setText(dids.get_bplace());
            holder.txtBday.setText(dids.get_bday());
            holder.txtAddress.setText(dids.get_address());

            byte[] outImage = dids.get_dp();
            ByteArrayInputStream imageStream = new ByteArrayInputStream(outImage);
            Bitmap theImage = BitmapFactory.decodeStream(imageStream);
            holder.imgProfile.setImageBitmap(theImage);
        }

        return view;
    }

    static class Holder{
        TextView txtFname;
        TextView txtGender;
        TextView txtBplace;
        TextView txtBday;
        TextView txtAddress;
        ImageView imgProfile;
    }
}

(列出活动)

public class ListDataIdntActivity  extends Activity{

    public static final String TAG = "ListDataIdntActivity";

    public static final int REQUEST_CODE_ADD_COMPANY = 40;
    public static final String EXTRA_ADDED_COMPANY = "extra_key_added_did";

    private ListView mListViewDID;
    private TextView emptyTxt;
    private Button b1;

    private ListDIDadapter adapter;
    private ArrayList<TamlaDataIdntModel> arryList;
    private DataIdntDAO mDIDdao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //Initialize View
        mListViewDID = (ListView) findViewById(R.id.list_did);
        emptyTxt = (TextView) findViewById(R.id.txt_empty_list_dids);
        b1 = (Button) findViewById(R.id.back_list_did);

        //Fill List View
        mDIDdao = new DataIdntDAO(this);
        List<TamlaDataIdntModel> mIdntList = mDIDdao.getAllDID();

        if (mIdntList != null && !mIdntList.isEmpty()){
            adapter = new ListDIDadapter(this,R.layout.activity_list_did,arryList);
            mListViewDID.setAdapter(adapter);
        }else {
            emptyTxt.setVisibility(View.VISIBLE);
            mListViewDID.setVisibility(View.GONE);
        }

    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode == REQUEST_CODE_ADD_COMPANY){
            if(requestCode == RESULT_OK){
                // add the added identity to the list and refresh the list view
                if(data != null){
                    TamlaDataIdntModel createdNewDID = (TamlaDataIdntModel)data.getSerializableExtra(EXTRA_ADDED_COMPANY);
                    if(createdNewDID != null){
                        if(arryList == null){
                            arryList = new ArrayList<TamlaDataIdntModel>();
                            arryList.add(createdNewDID);

                            if (adapter == null){
                                if (mListViewDID.getVisibility() != View.VISIBLE){
                                    mListViewDID.setVisibility(View.VISIBLE);
                                    emptyTxt.setVisibility(View.GONE);
                                }

                                adapter = new ListDIDadapter(this,R.layout.activity_list_did,arryList);
                                mListViewDID.setAdapter(adapter);
                            }else {

                                if (arryList != null){

                                    for (Object object : arryList) {

                                        adapter.insert((TamlaDataIdntModel) object, adapter.getCount());
                                    }
                                }
                                adapter.notifyDataSetChanged();
                            }
                        }
                    }

                }
            }
        } else {
            super.onActivityResult(requestCode,resultCode,data);
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mDIDdao.close();
    }
}

你漏掉了一句非常重要的台词——setContentView()。该行将 xml 与 Activity 的视图绑定,并且该视图用于findViewById。将此行添加到您的 onCreate 中:

@Override
public void onCreate(Bundle state){
    super.onCreate(state);
    setContentView(R.layout.name_of_the_xml);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:尝试在空对象引用上调用虚拟方法“void android.widget.ListView.setAdapter(android.widget.ListAdapter)” 的相关文章

  • 如何将跨源资源共享与 Spring MVC 4.0.0 RESTful Webservice 集成

    我有一个简单的 Web 服务返回JSON data The 用户等级 com bargadss SpringService Domain 是个POJO类包含 用户 ID 名字 姓氏 电子邮件 The 用户服务类 com bargadss S
  • Selenium 2:中断页面加载

    我在使用 FirefoxDriver 使用 Selenium 2 0b3 Java API 单击按钮时遇到问题 单击该按钮会将表单发送到网络服务器 然后浏览器会因表单提交而进入新页面 当使用 element click 单击某个元素时 se
  • Android NDK __android_log_print函数和LogCat

    我有一个类似的功能 android log print ANDROID LOG INFO HelloNDK 在我的 C 代码上 我在 LogCat 上找不到该输出 我需要设置什么样的过滤器 按日志标签 按日志消息 按应用程序名称 按日志级别
  • 二进制 XML 文件行 #:膨胀类片段时出错:仅在 Android (6.0)-Marshmallow 上

    我无法在 Android M 上显示 google 地图 这是布局 xml
  • 从壁纸中获取颜色? - 安卓

    如何找到当前壁纸的 平均 颜色并将该颜色设置为我的小部件上的布局 我正在尝试做的一个例子 这是 AccuWeather 上的设置 您可以使用WallpaperManager getWallpaperColors https develope
  • 带有 Spock Stub 的泛型

    我无法为泛型类编译 Spock 存根 构造函数的签名如下 SomeClass SerSup
  • Java TreeMap时间复杂度-lowerKey

    时间复杂度是多少lowerKey Java实现中的操作TreeMap 我认为它是 log n 但我在文档中找不到它 更基本操作的复杂性已有详细记录 此实现提供了有保证的 log n 时间成本 containsKey 获取 放置和删除操作 顺
  • 如何使用 Java glob 模式搜索(区分大小写)文件?

    我正在检查获取路径匹配器 http docs oracle com javase 7 docs api java nio file FileSystem html getPathMatcher 28java lang String 29的方
  • 如何将 Java 字节数组转换为 Scala 字节数组?

    我是 Scala 新手 目前正在从事一个涉及 Java 和 Scala 模块的项目 现在我想使用 byte 类型的参数从 Java 调用 Scala 方法 Scala 方法的签名为 def foo data Array Byte Java
  • 将 XML 转换为 Java 对象 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用java服务中的Zxing库从单个图像文件中读取多个条形码

    您好 我已经创建了一个java服务 用于从此处的图像中读取条形码 我使用Zxing库来解码此处的文本 挑战是 如果一个带有单个条形码的文件工作正常 如果有多个条形码 它会产生不相关的结果 我在下面给出了我的代码 pom xml
  • 如何检查 firebase 中是否存在孩子? [复制]

    这个问题在这里已经有答案了 我有一个 firebase 它有一个名为 users 的节点 用户给出一个用户名 我想检查该用户名是否已作为用户节点的子节点存在 这是我目前正在尝试的代码 平台是安卓 String myUsername user
  • 什么是样板代码、热点代码和热点?

    我知道这些术语是在性能实现 优化的背景下使用的 最近一直在研究这个问题 并尝试过搜索 但没有得到任何例子 清楚地阐述 描述这些概念以及在现实世界开发场景中实现这些问题 概念 有人可以彻底解释这些术语 示例场景以及可能使用这些概念和术语的地方
  • 策略模式的现实示例

    我一直在读关于OCP原理 http en wikipedia org wiki Open closed principle以及如何使用策略模式来实现这一目标 我打算尝试向几个人解释这一点 但我能想到的唯一例子是根据 订单 的状态使用不同的验
  • Android - 使用 HttpURLConnection 来 POST XML 数据

    我遇到了一些死胡同 需要一些帮助 请 我对 Android 开发 以及一般编码 非常陌生 基本上我需要使用 HttpURLConnection 将 XML 数据发布到 URL 但无法让它工作 我的应用程序从 GET 请求读取并传递 XML
  • 遍历多行字符串

    我得到一些数据 def data some useless text n even more n finally interesting text 我怎样才能得到其中 有趣的部分 所以基本上所有行都不是以 开头的 Groovy 的一种选择是
  • GreenDao交易

    我在用着GreenDao存储大量数据 来自休息服务 我的很多实体都与关系相关 一切都很顺利 但明天我必须实施坚如磐石的工作流程 当我加载数据时我必须检查是否发生错误 如果是这样 我必须确保没有存储任何内容在 SQLite 数据库中 通常我会
  • Android 多用户支持(4.2 中的新功能)对服务器端数据模型(例如 android_id)的影响

    Google 刚刚发布了 Android 4 2 其中支持单个设备上的多个用户配置文件 http developer android com about versions android 4 2 html MultipleUsers htt
  • 如何在 Android 上从后台线程显示 Toast?

    我怎样才能显示Toast http developer android com guide topics ui notifiers toasts html来自线程的消息 您可以通过调用Activity s runOnUiThread您线程中
  • 使用 jar 外部的配置启动 .jar,但能够从任何当前目录执行此操作

    我一直在努力解决一个特定的问题 我在 jar 文件中有一个 Java 程序 并且在 jar 之外有一个 lib 目录和一个 config 目录 但与 jar 本身所在的目录位于同一目录中 我正在尝试参考config foo config从代

随机推荐