Android-如何在条件下显示按钮?
我有一个按钮,基本上是这样的:Android-如何在条件下显示按钮?,android,Android,我有一个按钮,基本上是这样的: <Button android:id="@+id/admin_new_questions" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="See Asked Questions" /> if ( clause ) { Button admin_s
<Button
android:id="@+id/admin_new_questions"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="See Asked Questions"
/>
if ( clause )
{
Button admin_see_questions = (Button)findViewById(R.id.admin_new_questions);
admin_see_questions.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
....
}
});
}
但由于某些原因,所有情况下都会显示该按钮,但如果子句出错,则不会侦听Listener
如何使按钮仅在子句为true时显示
谢谢 在xml中将按钮的初始状态设置为“消失/不可见”,然后在代码中检查条件
<Button
android:id="@+id/admin_new_questions"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="See Asked Questions"
android:visibility="gone"
/>
默认情况下,将显示XML中声明的所有UI组件。您需要:
<Button ...
android:visibility="gone"
/>
您可以使用
setVisibility
中的View.GONE
和View.VISIBLE
作为起点来控制此操作
是否使用View.GONE或其他类似值取决于是否要在布局中考虑此按钮
您可以查看此问题以了解更多信息:
您也可以禁用它,使其可见,但不处于活动状态,这可能是一个更好的选择。使用admin\u-see\u-questions.setVisibility(View.go)或admin\u-see\u-questions.setVisibility(View.VISIBLE)您没有设置按钮的可见性。它们有三个可见性选项:可见、不可见和消失。下面的代码应该可以工作,根据子句显示或隐藏按钮
Button admin_see_questions = (Button)findViewById(R.id.admin_new_questions);
if ( clause )
{
admin_see_questions.setVisibility(View.VISIBLE);
admin_see_questions.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
....
}
});
} else admin_see_questions.setVisibility(View.INVISIBLE); //may want to use View.GONE here depending on what you want to accomplish
.setVisibility(View.GONE);隐藏
ViewGroup=(ViewGroup)(myView.getParent());
群组移除视图(myView);要删除请在条件满足时尝试此操作
if ( clause )
{
admin_see_questions.setVisibility(admin_see_questions.VISIBLE);
}
else
admin_see_questions.setVisibility(admin_see_questions.INVISIBLE);
您的按钮位于XML布局中,因此您可以通过更改其
可见性来隐藏或显示它
注意:这些操作只需执行一次:
使用findViewById()
设置按钮的OnClickListener
<Button
android:id="@+id/admin_new_questions"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="See Asked Questions"
android:visibility="invisible" //Initially hide the button
/>
您需要删除或隐藏按钮。尝试使用admin\u see\u questions.setVisibility(View.INVISIBLE)
或admin\u see\u questions.setVisibility(View.GONE)
。要再次显示该按钮,请调用admin\u see\u questions.setVisibility(View.VISIBLE)
您的代码将永远无法编译。您的按钮不在else子句的范围内。其他人已经正确回答了您的问题,但我想就用户体验问题向您提供建议。我认为隐藏不是这样做的正确方式。正确的方法是始终显示按钮,但如果子句为false则禁用它,如果为true则启用它:)
if ( clause )
{
admin_see_questions.setVisibility(admin_see_questions.VISIBLE);
}
else
admin_see_questions.setVisibility(admin_see_questions.INVISIBLE);
<Button
android:id="@+id/admin_new_questions"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="See Asked Questions"
android:visibility="invisible" //Initially hide the button
/>
Button admin_see_questions = (Button)findViewById(R.id.admin_new_questions);
admin_see_questions.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
....
}
});
if ( clause )
{
admin_see_questions.setVisibility(View.VISIBLE); //SHOW the button
}