android - Android - 使用不同的按钮显示不同的布局
问题描述
我创建了 4 个不同<LinearLayout>
的和 4 个不同的<button>
. 我想为每个按钮显示不同的布局。
我试过这个:
public void changeToLinear1(View view) {
layoutPrimer.setVisibility(View.VISIBLE);
layoutSegon.setVisibility(View.GONE);
layoutPostre.setVisibility(View.GONE);
layoutExtra.setVisibility(View.GONE);
}
public void changeToLinear2(View view) {
layoutPrimer.setVisibility(View.GONE);
layoutSegon.setVisibility(View.VISIBLE);
layoutPostre.setVisibility(View.GONE);
layoutExtra.setVisibility(View.GONE);
}
public void changeToLinear3(View view) {
layoutPrimer.setVisibility(View.GONE);
layoutSegon.setVisibility(View.GONE);
layoutPostre.setVisibility(View.VISIBLE);
layoutExtra.setVisibility(View.GONE);
}
public void changeToLinear4(View view) {
layoutPrimer.setVisibility(View.GONE);
layoutSegon.setVisibility(View.GONE);
layoutPostre.setVisibility(View.GONE);
layoutExtra.setVisibility(View.VISIBLE);
}
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Primers"
android:id="@+id/btnPrimers"
android:layout_weight="1"
android:onClick="changeToLinear1"/>
还有 3 个具有不同数据的按钮和“onClick”调用另一个它们各自的功能。
我怎么能做到这一点?有没有更好的办法?
解决方案
您可以让所有四个按钮调用相同的方法:
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Primers"
android:id="@+id/btnPrimers"
android:layout_weight="1"
android:onClick="changeToLinear"/>
<Button
...
android:onClick="changeToLinear"/>
<Button
...
android:onClick="changeToLinear"/>
<Button
...
android:onClick="changeToLinear"/>
public void changeToLinear(View view) {
layoutPrimer.setVisibility(view.getId() == R.id.btnPrimers ? View.VISIBLE : View.GONE);
layoutSegon.setVisibility(view.getId() == R.id.XXXXXXX ? View.VISIBLE : View.GONE);
layoutPostre.setVisibility(view.getId() == R.id.YYYYYYY ? View.VISIBLE : View.GONE);
layoutExtra.setVisibility(view.getId() == R.id.ZZZZZZZ ? View.VISIBLE : View.GONE);
}
(我不知道id
你的其他三个按钮,但你可以填写它们。)
参数是被点击以触发点击事件的view
任何视图,因此您可以使用它来确定点击了哪个按钮。
推荐阅读
- tensorflow - `tf.data.Dataset.from_generator` 从可修改的缓冲区中检索数据是否是线程安全的?
- amazon-web-services - 我在尝试从我的 Flutter 应用程序访问 AWS EC2 服务器时收到 [SocketException: OS Error: Connection denied, errno = 111]
- keras - 在 Keras 中传递输入时正确处理 Batch 维度
- python - 在我的 df 中确定基于组大小的 ID 的进入和退出时间
- python - CSV 到 Django 中的数据库
- java - Hibernate 查询目标列顺序
- javascript - 有没有办法避免将所有参数传递给函数
- java - JScrollPane 不能与 JPanel 和 JFrame 一起使用
- ios - 如何在 iOS/Swift 中使用 HLS 广播屏幕录制
- c++ - 使用 std::variant 进行参数归纳