在eclipse Android上从Activity类发送和接收数据到Fragment类

时间:2015-12-30 17:29:48

标签: android

当你在我的应用程序中午餐时,应用程序会显示MM - Fragment类 - 。 在那之后,你应该通过电梯菜单(比如牛奶)去另一个。然后按下按钮发送数据-one int和两个字符串 - 然后转到Activity类 - 它的名字Add - ,这是代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>A CSS Exercise</title>
<style type=”text/css”>
div {
font-weight: bold;
}
span {
font-style: italic;
}
</style>
</head>
<body>
<div>This is my web page.</div>
<div>This is the <span>nicest</span> page I’ve made yet.</div>
<div>Here is some text on my page.</div>
</body>
</html>

添加接收和更改数据 - 我不会更改数据代码 - 通过以下代码:

mil001add.setOnClickListener(new OnClickListener (){

        @Override
        public void onClick(View v) {
            Intent a = new Intent("android.intent.action.add");
            a.putExtra("milkcal", Content.Mil001.calory);
            a.putExtra("milkcon", Content.Mil001.consist);
            a.putExtra("milkmea", Content.Mil001.meal);
            startActivity(a);


        }});

直到现在应用程序工作非常好,问题是我无法将数据从Add发送到MM。 我希望找到解决方案。

2 个答案:

答案 0 :(得分:0)

如果需要,您可以将任何片段类的数据发送到活动,您可以使用它。

            Intent intent = new Intent(mContext,
                    FoodSelectionActivity.class);
            intent.putExtra("title", mProduct.getTitle().toString().trim());
            intent.putExtra("productid", (Integer) mProduct.getProductid());
            intent.putExtra("restaurantId", restaurantId);
            startActivity(intent);

FoodSelectionActivity.class是Activity。 现在您可以通过这种方式接收这些数据

    Bundle bundle = getIntent().getExtras();
    if (bundle != null) {
        titleString = bundle.getString("title");
        productid = bundle.getInt("productid");
        restaurantId = bundle.getString("restaurantId");

    }

它正在处理我的申请。

答案 1 :(得分:0)

在片段类中创建此接口。无论你想要什么,都可以命您需要将方法参数更改为您需要获取的内容。它可能是任何东西。

  /**
         * This interface must be implemented by activities that contain this
         * fragment to allow an interaction in this fragment to be communicated
         * to the activity and potentially other fragments contained in that
         * activity.
         * <p/>
         * See the Android Training lesson <a href=
         * "http://developer.android.com/training/basics/fragments/communicating.html"
         * >Communicating with Other Fragments</a> for more information.
         */
        public interface OnFragmentInteractionListener {
            // TODO: Update argument type and name
            public void onFragmentInteraction(Uri uri);
        }

之后,您在活动中实现此界面。

示例:

public class MainActivity extends AppCompatActivity implements FragmentName.OnFragmentInteractionListener

然后你覆盖方法,在这种情况下 onFragmentInteraction(Uri uri)

您在片段中调用 onFragmentInteraction(Uri uri),并在参数中指定数据,在这种情况下,活动可以使用Uri对象。