数组适配器初始化后为空(布局文件错误)

ddrv8njm  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(240)

我的应用程序因为一个愚蠢的原因不断崩溃!我环顾四周,发现有类似问题的用户正在使用片段,而我正在使用活动。我在oncreate方法中的代码如下。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    setContentView(R.layout.activity_select_contact);

    setResult(Activity.RESULT_CANCELED);
    ArrayAdapter<String> mPairedDevicesArrayAdapter = new ArrayAdapter<>(getApplicationContext(), R.layout.device_name);

    ListView mPairedListView = findViewById(R.id.paired_devices);
    mPairedListView.setAdapter(mPairedDevicesArrayAdapter);
    mPairedListView.setOnItemClickListener(mDeviceClickListener);

    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    Set<BluetoothDevice> mPairedDevices = mBluetoothAdapter.getBondedDevices();

    if (mPairedDevices.size() > 0) {
        /* List of all paired devices */
        findViewById(R.id.title_paired_devices).setVisibility(View.VISIBLE);
        for (BluetoothDevice mDevice : mPairedDevices) {
            mPairedDevicesArrayAdapter.add(mDevice.getName() + "\n" + mDevice.getAddress());
        }
    } else {
        /* No paired device */
        String mNoDevices = "None Paired";

具体情况如下:,

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void

位于ca.edgarwideman.taxibuddy.connectprinter.oncreate(connectprinter)的空对象引用上的。java:39)
第39行(出错的地方)是这样的,

mPairedListView.setAdapter(mPairedDevicesArrayAdapter);

我明白了?答案如下。。。

xzv2uavs

xzv2uavs1#

知道了!我都不好意思承认。。。?始终确保oncreate启动了正确的布局文件!

setContentView(R.layout.activity_select_contact);

应该是

setContentView(R.layout.activity_connect_printer);

谢谢你们帮我!给@ianhanniballake的学分

相关问题