在android中有条件地隐藏显示按钮

时间:2016-08-14 13:58:16

标签: java android xml

我是Android上的新手。你能帮我这个吗? 我想隐藏或显示布局中的按钮,但不是在单击时。 我的意思是,当布局出现时,按钮会显示或隐藏,具体取决于java中的if条件。

xml是:

<Button
    android:layout_width="@dimen/icon_width1"
    android:layout_height="@dimen/icon_width1"
    android:id = "@+id/button1"

    android:background="@drawable/facebook"
    android:paddingRight="@dimen/space_1"
    android:onClick="browser1"
    android:layout_gravity="center_horizontal"
    android:layout_marginLeft="10dp" 
/>

在我的DetailActivity.java中我有一个函数

public void browser1(View view) {
    Intent browserIntent=new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.twitter.com"));
    startActivity(browserIntent);
}

有人可以帮忙吗? 此致!

2 个答案:

答案 0 :(得分:3)

@ A.Omar首先,您必须在布局xml文件中定义一个按钮,如下所示

<Button
         android:layout_width="wrap_content"
         android:text="Test Button"
         android:id="@+id/testButtonId"
         android:layout_height="wrap_content" />

然后在您的活动类中,在onCreate方法中以实用方式获取按钮,并在按钮布局出现时设置按钮的可见性。像这样

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mylayout);

    Button testButton=(Button)findViewById(R.id.testButtonId);
            if (testButton.getVisibility()==View.VISIBLE){
                testButton.setVisibility(View.GONE);
            }else {
                  testButton.setVisibility(View.VISIBLE);
            }

}

注意请确保您没有两个onCreate方法,否则您将获得错误onCreate方法已定义。

答案 1 :(得分:1)

您必须使用分配给XML按钮的ID,在Java代码中找到它,然后才能显示/隐藏它。

代码如下所示:

Button myButton = (Button) findViewById(R.id.button1);

因此,Activity中的onCreate()代码如下所示:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mylayout);

    Button myButton = (Button) findViewById(R.id.button1);

    if(shouldShowButton()) {
        myButton.setVisibility(View.VISIBLE);
    } else {
        myButton.setVisibility(View.GONE);
    }
}