[英]setVisibility(View.INVISIBLE) causes exception, why?
為什么我的 setVisibility(View.INVISIBLE) 在 TextView 的 setVisibility 工作時導致異常。 我也嘗試為 ImageView 設置它,但它也不起作用 - 我也遇到了異常
public void alertdiag() {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.alertdiag_layout, null);
dialogBuilder.setView(dialogView).show();
View Divider1 = (View) dialogView.findViewById(R.style.Divider1);
Divider1.setVisibility(View.INVISIBLE); //causes java.lang.IllegalStateException: Could not execute method of the activity"
TextView HELP0 = (TextView) dialogView.findViewById(R.id.HELP0);
HELP0.setVisibility(View.INVISIBLE); // this works
}
alertdiag_layout.xml:
<View style="@style/Divider1"
android:layout_below="@+id/HELP3"
android:background="#000000"
android:layout_alignRight="@+id/HELP_FIX_LINE"
android:layout_alignLeft="@+id/HELP3"
/>
<TextView
android:id="@+id/HELP0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/HELP_FIX_LINE"
android:textStyle="bold"
android:typeface="normal"
/>
樣式.xml:
<style name="Divider1">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1dp</item>
</style>
您正在嘗試將可見性設置為樣式 (R.style.Divider1)
將 Id 添加到您的視圖並將 R.style.Divider1 更改為 R.id.yourNewId
<View style="@style/Divider1" android:id="@+id/yourNewId"
android:layout_below="@id/HELP3" android:background="#000000"
android:layout_alignRight="@id/HELP_FIX_LINE"
android:layout_alignLeft="@id/HELP3" />
將 id 屬性添加到您的視圖
<View style="@style/Divider1"
android:id="@+id/my_view"
android:layout_below="@id/HELP3"
android:background="#000000"
android:layout_alignRight="@id/HELP_FIX_LINE"
android:layout_alignLeft="@id/HELP3"
/>
注意:我將@+id/HELP3 和@+id/HELP_FIX_LINE 分別與@id/HELP3 和@id/HELP_FIX_LINE 切換,因為@+id/ 僅在您為視圖提供id 時使用。 它不用於引用其他視圖。
現在,更改這行代碼
View Divider1 = (View) dialogView.findViewById(R.style.Divider1);
和
View Divider1 = (View) dialogView.findViewById(R.id.my_view);
它將找到具有給定 id 的視圖,而不是樣式。
要使視圖不可見,您需要設置
Divider1.setVisibility(View.INVISIBLE);
setVisibility 必須用於視圖,而不是樣式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.