切换 findViewById returns null
Switch findViewById returns null
我正在尝试 2 天来解决这个问题。我制作了一个片段,其中我做了一个开关来启用和禁用蓝牙。那么在我的主要 activity 我写道:
bluetoothSwitch = (Switch) findViewById(R.id.bluetooth_switch);
bluetoothSwitch.setOnClickListener(clicked);
点击的位置:
clicked = new ButtonClicked();
和:
class ButtonClicked implements AdapterView.OnClickListener
{
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.bluetooth_switch:
if (bluetoothAdapter.isEnabled()){
bluetoothAdapter.disable();
Log.d("Log", "Bluetooth is disabled");
}
else{
bluetoothAdapter.enable();
Log.d("Log", "Bluetooth is enabled");
}
break;
case R.id.buttonSearch:
arrayListBluetoothDevices.clear();
startSearching();
break;
case R.id.discoverable_switch:
makeDiscoverable();
break;
default:
break;
}
}
}
当我 运行 它的 findViewById return 为空...你有什么想法吗???
您尝试执行的操作无效 - 您的 findViewByID
在 activity xml 中查找视图,但视图 (R.id.bluetooth_switch
) 是在片段的 xml.
内
查看 this 代码实现的 SO 答案。
"findViewById" returns null 当提供的 id(在您的示例中,它称为 "bluetooth_switch")在当前容器的 "resource tree" 中不存在时
我解决了将这些代码行移动到我的片段 java 文件中的问题。谢谢。
就我而言,已在视图上调用 setId()
进行跟踪,因此 findViewById
returns 为空。
也许可以帮助某人
我正在尝试 2 天来解决这个问题。我制作了一个片段,其中我做了一个开关来启用和禁用蓝牙。那么在我的主要 activity 我写道:
bluetoothSwitch = (Switch) findViewById(R.id.bluetooth_switch);
bluetoothSwitch.setOnClickListener(clicked);
点击的位置:
clicked = new ButtonClicked();
和:
class ButtonClicked implements AdapterView.OnClickListener
{
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.bluetooth_switch:
if (bluetoothAdapter.isEnabled()){
bluetoothAdapter.disable();
Log.d("Log", "Bluetooth is disabled");
}
else{
bluetoothAdapter.enable();
Log.d("Log", "Bluetooth is enabled");
}
break;
case R.id.buttonSearch:
arrayListBluetoothDevices.clear();
startSearching();
break;
case R.id.discoverable_switch:
makeDiscoverable();
break;
default:
break;
}
}
}
当我 运行 它的 findViewById return 为空...你有什么想法吗???
您尝试执行的操作无效 - 您的 findViewByID
在 activity xml 中查找视图,但视图 (R.id.bluetooth_switch
) 是在片段的 xml.
内
查看 this 代码实现的 SO 答案。
"findViewById" returns null 当提供的 id(在您的示例中,它称为 "bluetooth_switch")在当前容器的 "resource tree" 中不存在时
我解决了将这些代码行移动到我的片段 java 文件中的问题。谢谢。
就我而言,已在视图上调用 setId()
进行跟踪,因此 findViewById
returns 为空。
也许可以帮助某人