簡體   English   中英

setVisibility(View.INVISIBLE) 導致異常,為什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM