Androidのフラグメントに余分なものを入れようとしています。リスト フラグメントがあり、リストでアイテムがクリックされたときに、その ID を次のアクティビティにエクストラとして渡したいと考えています。コードは次のとおりです。
public class EmailListFragment extends ListFragment {
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
Email mail = ((CustomEmailFragmentAdapter)getListAdapter()).getItem(position);
Intent i = new Intent(getActivity(),EmailFragmentActivity.class);
i.putExtra(EmailFragment.EXTRA_EMAIL_ID, mail.getId());
startActivity(i);
}
}
および抽象SingleFragmentActivity クラス:
public abstract class SingleFragmentActivity extends FragmentActivity{
protected abstract Fragment createFragment();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.email_fragment_container);
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.email_fragment_container);
if(fragment == null){
fragment = createFragment();
fm.beginTransaction().add(R.id.email_fragment_container, fragment).commit();
}
}
}
および EmailFragmentActivity クラス:
public class EmailFragmentActivity extends SingleFragmentActivity {
@Override
protected Fragment createFragment() {
UUID emailId = (UUID) getIntent().getSerializableExtra(
EmailFragment.EXTRA_EMAIL_ID);
return EmailFragment.newInstance(emailId);
}
}
mail.getId() をエクストラとして渡し、EmailFragmentActivity クラスでエクストラを取得します。問題は、渡した ID が EmailFragmentActivity クラスで取得した ID と異なることです。ここで何が間違っていますか?誰でも助けることができますか?
ありがとう