想在android应用程序的运行时期间使一些视图不可见

时间:2011-08-23 07:37:07

标签: android android-layout

这是我的主要.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dip"
    >

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"

android:textColor="@color/mbackground1"
android:gravity="center_horizontal"
android:text="@string/decode_label"
android:padding="5dip" 
/>

<TextView
android:id="@+id/mytext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:background="@color/mbackground2" 
android:textColor="@color/mytextcolor" 
android:padding="5dip"
/>


 <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/continue_label"
android:gravity="center_horizontal"
android:textColor="@color/mytextcolor"
android:padding="5dip"
/>

<Button 
android:id="@+id/webbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/web_button"
android:textColor="@color/mytextcolor"
/>

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/continue_label1"
android:gravity="center_horizontal"
android:textColor="@color/mytextcolor"
android:padding="5dip"
/>

<Button 
android:id="@+id/callbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/call_button"
android:textColor="@color/mytextcolor"
/>
<TextView

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/continue_label2"
android:gravity="center_horizontal"
android:textColor="@color/mytextcolor"
android:padding="5dip"
/>

<Button 
android:id="@+id/emailbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sendemail_button"
android:textColor="@color/mytextcolor"
/>

</LinearLayout>

我希望基于运行时的输出,它应该只显示一个与该输出对应的textview和按钮。我在main.xml文件中定义布局,我也在这个领域。

任何人都有任何想法。 提前谢谢

6 个答案:

答案 0 :(得分:12)

我假设您知道如何获得对您定义的视图的引用,例如:

Button button = (Button)findViewById(R.id.emailbutton)

您需要为代码中要使用的每个视图定义一个id,就像您对email按钮所做的那样:

android:id="@+id/emailbutton"

要设置您调用的视图的可见性:

button.setVisibility(View.GONE);

您可以选择将展示次数设置为INVISIBLEVISIBLE。 然后,您可以随意使用可见性。 INVISIBLEGONE之间的区别在于GONE从布局中完全删除了视图,而INVISIBLE“保存”了此视图所占用的空间。

您可以在API示例中看到。

答案 1 :(得分:6)

要在java代码中删除您的视图:

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(View.GONE);

在java代码中透明您的视图:

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(View.INVISIBLE);

要在Xml文件中删除您的视图:

<yourView
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>

Xml文件中的透明按钮:

<yourView
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"/>

答案 2 :(得分:1)

使视图可见或不可见试试这个:

yourView.setVisibility(View.GONE);
yourView.setVisibility(View.VISIBLE);

答案 3 :(得分:1)

使用textView.setVisibility(View.GONE); - 使View Gone和textView.setVisibility(View.INVISIBLE); - 使视图无形

答案 4 :(得分:0)

可以使用View.setVisibility()方法更改视图的可见性,请查看此link以获取更多信息。希望这会有所帮助。

答案 5 :(得分:0)

按ID获取视图并使其不可见。例如,对于“mytext”TextView:

TextView my = (TextView) findViewById(R.id.mytext); // Get the view you want to manipulate
my.setVisibility(View.INVISIBLE);                   // Make it invisible
my.setVisibility(View.VISIBLE);                     // Make it visible again

Always check the documentation first!