2017-03-08 15 views
-2

なぜ私のsetVisibility(View.INVISIBLE)は例外を発生させますが、 TextViewのsetVisibilityは機能します。私はまた、ImageViewのためにそれを設定してみました、それはまた、動作しません - 私は例外あまりにsetVisibility(View.INVISIBLE)は例外を引き起こします、なぜですか?

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" 
/>   

のstyles.xml:

<style name="Divider1"> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">1dp</item> 
</style> 
+0

可視性をスタイル(R.style.Divider1)に設定しようとしています。 IDをビューに追加し、R.style.Divider1をR.id.yourNewIdに変更してください。 –

+0

完了!これはうまくいきます、ありがとうございます!あなたはそれがたくさん再び表示here..thanksではありませんので、:)私は、私はあなたがかもしれないと思う、間違い – juraset

+0

私は答えとしてそれを作りましたupvoteにしようとすると、あなたは15人未満の担当者ではできません。あなたはまだ答えを受け入れることができるはずです。これを行うには、受け入れる答えの矢印の下にあるチェックマークを選択します。 (これは1つの回答のみを受け入れることができることに注意してください)。これは、この質問が解決されたことを私たちに知らせ、あなたとその回答の著者に何人かの担当者を与えます。 –

答えて

1

あなたは

<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" /> 
R.id.yourNewId

にR.style.Divider1をあなたのビューにIDを追加 スタイル(R.style.Divider1)

への可視性を設定し、変更しようとしています

0

ビューに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/HELP_FIX_LINEでそれぞれ切り替えました。なぜなら、@ + id /はビューにIDを与えたときにのみ使用されるからです。他のビューを参照するのには使用されません。

さて、それは与えられたIDを持つ、代わりにスタイルのビューがあります

View Divider1 = (View) dialogView.findViewById(R.id.my_view); 

でコード

View Divider1 = (View) dialogView.findViewById(R.style.Divider1); 

のこの行を変更します。

はあなたがいないスタイルに、ビューで使用する必要があり

Divider1.setVisibility(View.INVISIBLE); 

setVisibilityを設定する必要があるビューを非表示にするには。

関連する問題