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 */

输出分为 2 个窗口,一个用于扩展列表片段(用于列表视图),一个用于片段。

片段2.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 中的 Fragments 和 Activity 之间的数据共享

于 2013-12-11T16:10:27.030 回答