2016-12-04 6 views
0

RecyclerViewの可視性をView.GONEに変更しようとしています。しかし、何も変更が行われていません:RecyclerViewの可視性を変更できません

@Override 
public boolean onQueryTextSubmit(String query) { 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       list.setVisibility(View.GONE); 
       } 
      }); 
     if (list == null){ 
     throw new NullPointerException(); 
     } 

をここに見るのです:

<android.support.v7.widget.RecyclerView 
      android:id="@+id/allUsers" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_alignParentStart="true" 
      android:layout_below="@+id/toolbar_container" /> 

runOnUiThreadを削除すると、動作し、また​​をしていません。何もクラッシュしていない。これは内部クラスです。私は間違って何をしていますか?

+0

はあなたが私たちのレイアウトを示しすることはできますか? – galex

+0

@galex確かに、ちょうど秒 –

+0

あなたは 'list'変数がどこに/どのように割り当てられているかを表示できますか? –

答えて

0

あなたは内部クラスから変数にアクセスすると、コンパイラが言うべきであることが判明:

変数「x」は、宣言する必要があり、内部クラスからアクセスされるfinal

何らかの理由で私は喜んで時間のエラーを取得していませんでした。たとえ変数がメソッドで宣言されていたとしても。

だからあなたは内部クラスからアクセスしている変数は、このようなfinal宣言されていることを確認してください:好き

final X y; 

をしていないこの:

Xがタイプです
X y; 

yは変数の名前です。

Why are only final variables accessible in anonymous class?

+0

ここにあるようなクラスのスコープ内にある変数は最終的なものである必要はありません。 – DeeV

+0

方法にあります –

関連する問題