web-dev-qa-db-ja.com

Android:フラグメントからのアクティビティの呼び出し

アクティビティ内でフラグメントを使用しています。オーディオ録音にMediaRecorderを使用しています。私は活動の2つの部分があります。 1つ目は、記録されたファイルをリストするアクティビティです。その右側では、新しいファイルの録音を選択すると、AudioRecordingアクティビティが呼び出されます。リストされたファイルのいずれかが選択されている場合、AudioPlayerを使用して、記録されたファイルを再生します。ここでアクティビティをフラグメントに変換できますが、[停止]を押すとアプリケーションが終了します。

どなたでもお答えできますようお願いします。単純なアクティビティとして使用すると、オーディオレコーダーが正常に動作します。そのアクティビティをそのフラグメントなどで呼び出すことができる場合のような解決策はありますか?誰か知っていたら助けてください。

11
Dharma Cool

Getアクティビティを使用して親アクティビティを取得してから、通常どおり実行します。

Intent myIntent = new Intent(getActivity(), BookmarkActivity.class);
getActivity().startActivity(myIntent); 
33
Chinmoy Debnath

これは別の方法です。これでうまくいきました。

public class **YourFragmentClass** extends Fragment {

    Context context; //Declare the variable context

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) {

    //Pass your layout xml to the inflater and assign it to rootView.
      View rootView = inflater.inflate(R.layout.**yourfragmentxml**, container, false); 
            context = rootView.getContext(); // Assign your rootView to context

            Button **yourButton** = (Button) rootView.findViewById(R.id.**your_button_id**);
            **yourButton**.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //Pass the context and the Activity class you need to open from the Fragment Class, to the Intent
                    Intent intent = new Intent(context, **YourActivityClass**.class); 
                    startActivity(intent);
                }
            });
            return rootView;
        }
    }
8

activityから別のfragmentを呼び出すには、次を使用します。

Intent i = new Intent(getActivity(), Activity.class);
startActivity(i);

フラグメントクラス内

 getActivity().startActivity(new Intent(gwtActivity(),MainActivity.class));
 getActivity().finish();
1

フラグメントには親が必要です

Intent intent = new Intent(getActivity(), SecondActivity.class);
getActivity().startActivity(intent);  
0
Ashok Reddy M

単純に呼び出すことができます

startActivity(new Intent(getActivity(),TheNextActivity.class));
0

FragmentクラスからActivityを呼び出す最良の方法は、Fragmentにインターフェイスを作成し、そのインターフェイスにonItemClick()メソッドを追加することです。それを最初のアクティビティに実装し、そこから2番目のアクティビティを呼び出します。

0
Krishna Meena