1

値を 1 つの変数に格納できます。次に、その変数をフラグメントに渡したいと思います。以下のコードを使用して、フラグメントをロードできます。

public class AndroidListFragmentActivity extends Activity {
    Fragment2 f2;
    public static String itemname;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.apetiserfragement);
        itemname=getIntent().getStringExtra("itemname");
        Bundle args=new Bundle();
        args.putString("itemname", itemname);
        f2=new Fragment2();
        f2.setArguments(args);
    }
} /* (Here I load fragment using xml page) itemname */

出力は、listfragment (リストビュー用) の拡張用とフラグメント用の 2 つのウィンドウに分割されます。

Fragment2.xml

public class Fragment2 extends Fragment {
    String itemname;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        System.out.println(getArguments().getString("itemname"));

        return inflater.inflate(R.layout.fragment2, container, false);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }
}

このクラスitemnameのAndroidListFragmentActivityにFragment2.classを渡したい..助けてください

4

2 に答える 2

3

両方のフラグメントが他のアクティビティにある場合は、インテントを使用できます

同じアクティビティの場合、その特定のアクティビティで操作を実行できます

このリンクのように

TitlesFragmentクラスのonListItemClickを参照してください

**
     * Helper function to show the details of a selected item, either by
     * displaying a fragment in-place in the current UI, or starting a
     * whole new activity in which it is displayed.
     */
    void showDetails(int index) {
        mCurCheckPosition = index;

        if (mDualPane) {//<---------------------f on same activity then can do operation on that particular fragment
            // We can display everything in-place with fragments, so update
            // the list to highlight the selected item and show the data.
            getListView().setItemChecked(index, true);

            // Check what fragment is currently shown, replace if needed.
            DetailsFragment details = (DetailsFragment) //<------------------------see use getFragmentManager
                    getFragmentManager().findFragmentById(R.id.details);
            if (details == null || details.getShownIndex() != index) {
                // Make new fragment to show this selection.
                details = DetailsFragment.newInstance(index);

                // Execute a transaction, replacing any existing fragment
                // with this one inside the frame.
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.replace(R.id.details, details);
                ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                ft.commit();
            }

        } else { //<----------If both fragment are on other activity then can use intent 
            // Otherwise we need to launch a new activity to display
            // the dialog fragment with selected text.
            Intent intent = new Intent();
            intent.setClass(getActivity(), DetailsActivity.class);
            intent.putExtra("index", index);
            startActivity(intent);
        }
于 2012-06-09T12:07:30.627 に答える
0

ここでこの応答を参照してください: Android のフラグメントとアクティビティ間のデータ共有

于 2013-12-11T16:10:27.030 に答える