2017-08-03 31 views
-1

私は初心者で、学習中に勉強しようとしていますが、この時点で私にとってはGoogleの結果が複雑すぎます。Android:アクティビティとフラグメント間の通信

私はActivityを持っており、ボタンを押してフラグメントを開いたり閉じたりすることができます。断片クラス規定として

public void pressedButton(View v) { 
    FragmentActivity fragmentActivity = new FragmentActivity(); 

    FragmentManager fragmentManager = getSupportFragmentManager(); 
    android.support.v4.app.FragmentTransaction ft = fragmentManager.beginTransaction(); 

    ft.add(R.id.frame_which_takes_the_fragment, FragmentActivity, "FRAGMENT_TAG"); 
    ft.commit(); 

、iが活性におけるその「OnFragmentInteractionListener」インターフェースを実装し、onFragmentInteractionメソッドをオーバーライド。

@Override 
public void onFragmentInteraction(Uri uri) { 

} 

これから進歩の方法はわかりません。アクティビティの変数をフラグメントに送信するには(たとえば、ユーザーインターフェイスの番号を更新するなど)、どのように情報を返すのですか?

私は血まみれの初心者であり、できるだけ基本的でシンプルなものにしてください。事前

+0

が重複する可能性を[フラグメントとそのコンテナのアクティビティ間でデータを渡す](https://stackoverflow.com/questions/9343241/passing-data-フラグメント間およびコンテナ間のアクティビティ) – ApriOri

答えて

2

したがって、既にフラグメントにインターフェイスを作成し、それをアクティビティに実装しましたか?次に、必要に応じてインターフェイスを作成するだけです。 onFragmentInteraction(Uri uri)メソッドは単なる例であり、Uriをフラグメントからアクティビティに渡す必要がない場合は削除できます。

ので、番号を渡すために、あなたのインターフェイスは、次のようになります。

interface Listener { 
    void onNumberChanged(int number); 
} 

関連するフラグメントコード:

listener.onNumberChanged(someNumber); 

関連するアクティビティコード:

@Override 
public void onNumberChanged(int number) { 
    someTextView.setText(Integer.toString(number)); 
} 
関連する問題