java - 即使声明了变量,View.OnClickListener() 也会变灰?
问题描述
即使声明了变量, 也不起作用,并且 是灰色的a.setOnClickListener
。View.OnClickListener()
位于ImageView
弹出窗口内。它抛出一个错误:
尝试在空对象引用上调用虚拟方法“void android.widget.ImageView.setImageResource(int)”
public class MoodPopUp extends Activity {
ImageView a,b,c,d,e,f,g,h,i;
FirebaseDatabase rootNode;
DatabaseReference databaseReference;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//-----------------------------User Interface--------------------------------------------------
setContentView(R.layout.mood_picker_popup);
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int width = displayMetrics.widthPixels;
int height = displayMetrics.heightPixels;
//Pop Up Window Size
getWindow().setLayout((int) (width*.8),(int)(height*.6));
//-----------------------------Function--------------------------------------------------------
//Pop Up Picker on Click
a = (ImageView) findViewById(R.id.Aemoji);
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rootNode = FirebaseDatabase.getInstance();
databaseReference = rootNode.getReference("Emoji");
databaseReference.setValue("A");
}
});
}
这是我的 XML,它有正确的 Aemoji ID
<ImageView
android:id="@+id/Aemoji"
android:layout_width="101dp"
android:layout_height="111dp"
android:layout_marginStart="12dp"
android:layout_marginLeft="12dp"
android:layout_marginTop="4dp"
android:clickable="true"
android:src="@drawable/smiling"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
解决方案
尝试 1:
如果这不起作用,请尝试设置child
您的参考:
databaseReference = rootNode.getReference().child("Emoji");
尝试2:
变量“a”可能为空。您应该调试该函数以查看它是否实际上是从第一个语句中找到的setContentValues()
。
推荐阅读
- ajax - 如何让 google bot 抓取 Ajax 页面
- python-3.x - 使用 postgree 创建 django 项目可执行文件或设置文件
- python - Node.js spawn 模块不适用于 python
- java - 如何在 Spring Boot 中将数据源配置为外部 Jar
- vba - VBA - 最后一列选择和导出
- javascript - this.innerHTML 在这里是什么意思?
- web-applications - 登录期间实例化 servlet 类时出错
- installation - Devstack 安装失败并显示错误消息“错误:不允许将可编辑要求作为约束”
- javascript - 从 PHP 附加的 HTML 节点成为彼此的子节点
- java - 添加 XSSFWorkbook workbook = new XSSFWorkbook(inputWorkbook); 时语句来回走动