我必须开发一个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)
请帮我调试此错误。
答案 0 :(得分:5)
你应该改变
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);
答案 1 :(得分:1)
好吧,在我看来你使用的是错误的id。你在某个地方得到一个空指针(我不知道哪里因为没有行号),但我在你的xml中看到你有id,footer
和footer1
,但在你的代码中你正在尝试查找ID为footertab
和footer_tab
的元素。你应该把这些id匹配。
答案 2 :(得分:0)
使用ViewBinding和Kotlin,可以这样实现
binding.yourInclude.root.visibility = View.GONE
对于 <include>
标签内的特定视图,请使用下面的代码
binding.yourInclude.textView.visibility = View.GONE