视图和布局元素有条件地显示

时间:2012-01-23 19:34:22

标签: android android-layout android-button

我是Android开发的半新手。我正准备设计一个项目,其中有一个按钮,点击时有两种不同的方法(实际上是一个切换)。我知道我可以通过自己实现OnClickListener来实现这一点,但我想知道是否有办法在布局xml中制作2个不同的按钮,然后有条件地显示一个或另一个。如果这是可能的,这通常是一个好习惯,还是有更好的方法让按钮执行两种不同的方法?是否更容易继续实施OnClickListener?

由于

(我目前没有任何代码可以显示,但如果我的问题含糊不清,我会很乐意在必要时详细说明)

2 个答案:

答案 0 :(得分:3)

是的,这很容易。将两个按钮放在布局XML中,并将属性android:visibility=GONE添加到其中一个。在Java代码中,您可以使用button.setView(View.VISIBLE)button.setView(View.GONE)更改按钮的可见性。 (不要使用button.setView(View.INVISIBLE),因为该按钮将不可见但仍占用视图中的空间。)

答案 1 :(得分:1)

我一直在考虑它,如果按钮之间的唯一区别是它们点击时的作用,你应该只使用一个按钮,并且:或者

  1. onClick()方法中使用if / else或点击侦听器来控制行为,或者
  2. 如果要更改行为,请使用button.setOnClickListener()更改侦听器
  3. 但是如果按钮明显不同(例如位置不同等),请使用我的其他答案。