2017-07-14 5 views
0

「resultView」という名前のLinearlayoutがあります。その後、ボタンをクリックした後に、多くのtextViewを動的に追加しました。 ボタンをもう一度クリックしたときに作成したテキストビューをすべて削除します。removeAllViews()を呼び出した後、Androidのレイアウトが更新されない

btn_search.setOnClickListener(new Button.OnClickListener(){ 
     @Override 
     public void onClick(View view) { 
      resultView.removeAllViews(); 

      String strFileName = et_fileName.getText().toString(); 
      searchFiles(strFileName); 
    } 
}); 

public void searchFiles(String strFileName){ 
    .... 

    for (int i = 0; i < fileList.size(); i++) { 
     TextView textView = new TextView(this); 
     textView.setText(fileList.get(i).getName()); 
     textView.setPadding(5, 5, 5, 5); 

     if (fileList.get(i).isFile()) 
      resultView.addView(textView); 
    } 
} 

App Screenshotすべての結果は動的に作成されたtextViewsです。

My XML、id "view"はmy resultViewです。

ただし、resultView.removeAllViews();は機能しません。結果はまだアペンディドされています。 それ以降のresultView.invalidate();の呼び出しも機能しません。

レイアウトを更新するにはどうすればよいですか?

+0

また、resultView.requestLayout(); –

+0

resultView.requestLayout()が動作しません – Eiko

+0

mainThreadでない場合は、invalidate()の代わりにpostInvalidate()を使用してください。コードにinvalidate()を呼び出していましたか? "onClickListener"では、ビューのみを削除します。 –

答えて

0

.invalidate()を使用してUIを更新します。

関連する問題