0

次のハンドラーがあります。

public class SiteListener implements OnItemClickListener{
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
    }
}

私は以下を呼び出すことができるようにしたい:

myActivity.getSupportFragmentManager()
            .beginTransaction()
            .add(R.id.site_info, siteInfoFragment)
            .commit();

SiteListener からアクティビティにアクセスするにはどうすればよいですか? を使用する方法はありadapterViewますか?

4

2 に答える 2

3

SiteListenerアクティビティを作成するときに、アクティビティへの参照を渡します。

編集コード例を追加:

public class SiteListener implements OnItemClickListener{
    private MyActivity myActivity;

    public SiteListener(MyActivity myActivity) {
        this.myActivity = myActivity;
    }

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        myActivity.getSupportFragmentManager()
            .beginTransaction()
            .add(R.id.site_info, siteInfoFragment)
            .commit();

    }
}
于 2012-08-17T09:52:17.920 に答える
1

でキャストFragmentActivityviewて のインスタンスを取得できますFragmentActivity

FragmentActivity activity = ((FragmentActivity)view.getContext());
activity.getSupportFragmentManager()
            .beginTransaction()
            .add(R.id.site_info, siteInfoFragment)
            .commit();
于 2012-08-17T09:46:24.100 に答える