TextViewのリストを宣言し、テキストビューをリストに追加する方法を提供します。
また、アクティベーション状態を通知する方法も提供します。このメソッドは、必要な変更を1つずつ呼び出すtextviewのリストを調べます。
主なアクティビティから、fragment.changeListeningTextViews()を呼び出します。
これは、フラグメントに行く:
リストにテキストビューを追加onCreateViewで
private ArrayList<TextView> listeningTextViews;
public void addListeningTextview(TextVew tv){
//Here check if the text view is already added not to add it twice.
listeningTextViews.add(tv);
}
public void changeListeningTextViews(){
for(TextView tv : listeningTextViews){
tv.setFont(...);
//What you want called on each TextVeiw
}
}
:
TextView textView1 = (TextView) rootView.findViewById(R.id.aview);
addListeningTestview(textView1);
TextView textView2 = (TextView) rootView.findViewById(R.id.anotherview);
addListeningTestview(textView2);
...
注:それは他の方法でラウンドした場合は、主な活動を必要とするときフラグメントから来るイベントをリッスンするには、解決策は異なり、メインアクティビティによって実装されるカスタムリスナインターフェイスが必要になります。
これで、現在表示されているフラグメントのオブジェクトにメインアクティビティからアクセスできます。しかし、私は今FontSizeHelperクラスを実装して、textViewオブジェクトを保持しています。私のようなこの方法ははっきりと分かります。しかし、私が考えるより良い方法があるはずです。 – Yakari
あなたの状況をよりよく理解できるように、いくつかのコードを投稿してください。 – Shanky