6

我必须开发一个android应用程序。

我创建了一个布局文件,该文件使用另一个布局文件使用include标签。

  <include
    android:id="@+id/footer"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_alignParentBottom="true"
    layout="@layout/footer_tabs" />
  <include
    android:id="@+id/footer1"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_alignParentBottom="true"
    layout="@layout/footertabs" />

我想在响应为空时显示包含的布局,否则我想隐藏布局并显示另一个。这是我到目前为止所拥有的:

footertabs = (RelativeLayout) findViewById(R.id.footertab);
footer_tabs = (RelativeLayout) findViewById(R.id.footer_tab);

if (Constants.response==null) {
    footertabs.setVisibility(View.VISIBLE);
    footer_tabs.setVisibility(View.GONE);
}
else
{
    footertabs.setVisibility(View.GONE);
    footer_tabs.setVisibility(View.VISIBLE);
}

但我收到以下错误:

07-15 17:19:09.893: E/AndroidRuntime(15143): Caused by: java.lang.NullPointerException
07-15 17:19:09.893: E/AndroidRuntime(15143):    at com.example.androidbestinuk.HomePage.onCreate(HomePage.java:56)

请帮我调试这个错误。

4

3 回答 3

4

你应该改变

footertabs = (RelativeLayout) findViewById(R.id.footertab);
footer_tabs = (RelativeLayout) findViewById(R.id.footer_tab);

footertabs = (RelativeLayout) findViewById(R.id.footer);
footer_tabs = (RelativeLayout) findViewById(R.id.footer1);
于 2013-07-15T11:58:28.127 回答
1

好吧,在我看来,您使用了错误的 ID。你在某处得到一个空指针(我不确定在哪里,因为没有行号),但我在你的 xml 中看到你有 idfooterfooter1,但是在你的代码中你试图找到带有 idfootertab和的元素footer_tab。您应该使这些 id 匹配。

于 2013-07-15T11:58:25.547 回答
0

使用ViewBinding和Kotlin,可以这样实现

binding.yourInclude.root.visibility = View.GONE

对于标签内的特定视图,请<include>使用下面的代码

binding.yourInclude.textView.visibility = View.GONE
于 2021-03-22T19:15:36.477 回答