【问题标题】:Android: Why am I getting a null pointer error for my button when I use a different XML file?Android:当我使用不同的 XML 文件时,为什么我的按钮会出现空指针错误?
【发布时间】:2016-02-15 01:48:00
【问题描述】:

当我尝试引用不在我的主 XML 文件中的按钮时出现空指针错误 - 它在另一个 XML 文件中。我希望它在另一个 XML 文件中的原因是,该按钮仅在用户按下 MenuItem 时显示,这将提示他们使用该按钮进入页面。

如何访问不在 main.xml 中的按钮?

这就是我所拥有的

 @Override
public boolean onMenuItemClick(MenuItem item) {
       switch (item.getItemId()) {

              case R.id.timer_icon:
              Button startButton = (Button) findViewById(R.id.timer_button);
              startButton.setOnClickListener(new View.OnClickListener() {//error occurs here

                  public void onClick(View view) {//do stuff }
               });

               break;
    }

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/timer_value"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="37dp"
        android:textSize="40sp"
        android:textColor="#ffffff"
        android:text="timer text"/>

    <Button
        android:id="@+id/timer_button"
        android:layout_width="90dp"
        android:layout_height="45dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="38dp"
        android:text="timer button text" />

</LinearLayout>

如果重要的话,上面的 Java 代码在我的主要活动中。

【问题讨论】:

  • 把它放在你的主xml中,默认隐藏。然后在onMenuItemClick中设置可见性为VISIBLE

标签: android xml button


【解决方案1】:

您是否考虑过使用View.GONE 作为同一个xml 文件中按钮的可见性,而不是将其放在另一个xml 文件中?

https://developer.android.com/reference/android/view/View.html#GONE

这个视图是不可见的,它不占用任何布局空间 目的。

所以使用属性将按钮设置为View.GONE,然后当用户点击菜单项时,将可见性更改为View.VISIBLE

【讨论】:

    【解决方案2】:

    我想通了:

    我刚刚创建了一个新活动并将 java 和 xml 代码链接到该新活动。现在像魅力一样工作!

    感谢您的投入!

    【讨论】:

      猜你喜欢
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 2021-08-10
      相关资源
      最近更新 更多