首页 新闻 搜索 专区 学院

给listview添加内容,出错'java.lang.String java.lang.Object.toString()' on a null object reference

0
[已解决问题] 解决于 2020-07-02 17:46
            int i = 0;
            String[] Dname = new String[5];
            String[] Daddress = new String[5];
            // 获取已配对蓝牙设备
            Set<BluetoothDevice> paired = mbluetooth.getBondedDevices();
            if(paired.size() > 0){
                for(BluetoothDevice device:paired) {
                    String deviceName = device.getName();
                    String deviceAddress = device.getAddress();
                    Dname[i] = deviceName;
                    Daddress[i] = deviceAddress;
                    i++;
                    Toast.makeText(MainActivity.this,Dname[0],Toast.LENGTH_SHORT).show();
                }
                System.out.println(Dname[0]);
                String[] nameArr = new String[]{"Arun"}; //,"Anil","Ankit","Manoj"
                ArrayAdapter<String> adp = new ArrayAdapter<String >(MainActivity.this,
                        android.R.layout.simple_list_item_1, android.R.id.text1, Dname); //这里换成nameArr就正常,用Dname就出错
                ListView lvofpaired = (ListView) findViewById(R.id.LV_PairedDevices);
                lvofpaired.setAdapter(adp);
                System.out.println(Daddress[0]);

两个输出:

I/System.out: q_bluetooth
I/System.out: 00:01:17:00:16:00

这段是获取已 经 蓝牙配对的设备 并添加到ListView里。

取配对设备名和地址正常,只是在

ArrayAdapter<String> adp = new ArrayAdapter<String >(MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, Dname); //这里换成nameArr就正常,用Dname就出错

错误是:java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference

 

不明白怎么回事? 为什么用数组不出错,用我动态取到的就空对像了

 

 

谢谢

问题补充:

List<String> Dname = new ArrayList<String>();

 

ArrayAdapter<String> adp = new ArrayAdapter<String >(MainActivity.this,
android.R.layout.simple_list_item_2, android.R.id.text1,
Dname);

我把这两行改成这样,就可以显示配对的设备名。

 

但是我想,在ListView里显示出设备名 和 地址。

还没有的主页 还没有 | 菜鸟二级 | 园豆:495
提问于:2020-07-01 14:58
< >
分享
最佳答案
0

sdk自带的android.R.layout.simple_list_item_1好像是只支持String类型的数据,不支持自定义的数据(你这里自定义了DName),如果你想使用自定义数据,可以看一下android.widget.BaseAdapter的用法,不过现在列表更多都是在用RecyclerView了

奖励园豆:5
我是满意吖 | 菜鸟二级 |园豆:250 | 2020-07-02 12:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册