【发布时间】:2022-05-04 23:27:38
【问题描述】:
我对 Android 开发有点陌生,希望您能帮助我。我有一个 RecyclerView,每个卡片视图显示一个图像、两个文本视图和一个切换按钮。这个应用程序是为我自己准备的,我想组织我的卡片收藏,所以开关在那里让我知道我是否有卡片,所以我想用 1 更新数据库,如果它被选中,或者用 0 如果它是不是。我试图用一些 Toast 测试按钮,但出现错误。代码如下:
aSwitch = (Switch) findViewById(R.id.switch1);
aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked == true) {
Toast.makeText(StockActivity.this, "On", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(StockActivity.this, "Off", Toast.LENGTH_SHORT).show();
}
}
});
这是我的开关按钮代码,我认为这很好,但出现错误:
java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.battlespiritsdb/com.example.battlespiritsdb.StockActivity}:java.lang.NullPointerException:尝试调用虚拟方法 'void android.widget.Switch.setOnCheckedChangeListener (android.widget.CompoundButton$OnCheckedChangeListener)' 在空对象引用上
setOnCheckedChangeListener 第一行的错误点,不知道为什么,是因为我在 RecyclerView 上使用的还是什么?
【问题讨论】:
-
可能存在 id
switch1但在另一个布局中与您定义它的布局不同。 -
请在此处提供您的适配器代码 :)
-
'aSwitch' 出于某种原因为空。这可能是因为 R.id.switch1 在您膨胀的布局中不存在。
-
按钮不在那个布局中,如果我有 recyclerview,这就是活动,然后我得到 item_layout,如果我有带有 Switch 按钮的 cardView。那么,即使不想使用,也需要在activity_layout上实现一个Switch按钮?
-
能把recyclerview的适配器的完整代码放上来
标签: android android-recyclerview grid-layout android-switch