2つのフラグメントが、(イベントリスナーを介して)アクティビティにインテントを渡すことがあります。アクティビティは、これらの2つのフラグメントのどちらが意図をパスしたかをどのように知ることができますか? getCallingActivity()
と呼ばれる方法がありますが、フラグメントには同等のものが必要です。アクティビティと呼ばれるフラグメントを特定する方法
私はonAttachFragment()
方法で活動を呼び出されたフラグメントを決定しようとしましたが、それは動作しません:
public class DetailsActivity extends Activity {
static final String POSITION = "position";
private Movie movie;
private int position;
private static final String TAG = "app";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
}
@Override
public void onAttachFragment(Fragment fragment) {
super.onAttachFragment(fragment);
Log.v(TAG, "fragment_src");
position = (int) getIntent().getExtras().get(POSITION);
if (fragment instanceof PopularFragment) {
movie = PopularFragment.movieList.get(position);
setData();
} else if (fragment instanceof TopRatedFragment) {
movie = TopRatedFragment.movieList.get(position);
setData();
}
}
public void setData() {
TextView original_title = (TextView) findViewById(R.id.original_title);
original_title.setText(movie.getOriginal_title());
...
}
}