2016-03-29 6 views
-1

フラグメント2のボタンをクリックして、フラグメント1のテキストビューでテキストを変更したいのですが、テキストビューをstaticとして宣言することでそれを行うことができました。 Fragment1.textv.setText("hi");、それは大丈夫です、これを行うための最善の方法は何ですか。同じアクティビティの別のフラグメントのフラグメントアクセスウィジェット

http://developer.android.com/training/basics/fragments/communicating.html

  • あなたができるも:最も一般的な方法は、(あなたが活動を介して通信する必要があります)フラグメントAからフラグメントBに '話す' にインターフェースを使用している

    static textv ; 
    @Override 
    public View onCreateView( LayoutInflater inflater, ViewGroup container, 
             Bundle savedInstanceState) { 
        final View v = inflater.inflate(R.layout.fragment_frag_beam_rec, container, false); 
    
        textv= (TextView)v.findViewById(R.id.textview); 
    
          return v; 
    } 
    
  • 答えて

    1
    • OttoのようなEvent-busライブラリを使用して、更新したいフラグメントを登録し、他のフラグメントからアップデートを投稿する:

      http://square.github.io/otto/

    1

    user3806331は、あなたはそれがメモリリークにつながる可能性があるため、インターフェイスを使用したリンクをたどると、あなたがウィジェットに静的な参照を持つことは悪い習慣であることに注意してneed.butものを見つけるだろうする必要が述べたようにいくつかの状況では。

    関連する問題