2

我已经在我的Activity中实现了NFC 前台调度。代码工作正常,当 NFC 标签靠近我的手机时,就会调用。onNewIntent(Intent intent)

现在,我想在调用时显示一个片段(MyFragment.java)onNewIntent(Intent intent)Fragment类中resolveIntent(Intent intent)定义了方法。

这是我的Activity的一些代码:

public class MainActivity extends Activity{
   …
   @Override
   public void onNewIntent(Intent intent) {
    super.onNewIntent(intent);

      FragmentManager fragmentManager = activity.getFragmentManager();
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

      //How to pass the 'intent' to MyFragment?
      MyFragment fragment = new MyFragment();

    fragmentTransaction.replace(R.id.placeholder, fragment, fragmentName);
    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();
   }        
}

MyFragment.java的代码

public class MyFragment extends Fragment{
    …
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
       ...
    }
    @Override
    public void onResume(){
      super.onResume();

       //How to get 'intent' here 
       resolveIntent(intent);
    }

    private void resolveIntent(Intent intent){
       ...
    }
}

我的问题是如何将intentfrom传递onNewIntent(Intent intent)MyFragment以便我可以处理MyFragment in 中的意图onResume()

4

2 回答 2

5

我发现 Intent 是一个可打包的对象,我可以使用 bundle.putParcelable() 方法将 Intent 实例传递给下一个片段。

于 2013-06-17T13:30:18.297 回答
0

您可以将意图存储在活动的字段中。添加一个类似 getLastIntent() 的方法,并在片段中使用 getActivity().getLastIntent() 调用它。

或者从意图中提取信息并创建一个 Bundle,您将使用 fragment.setArguments() 并在片段的 onStart() 方法中使用 getArguments()

于 2013-06-17T10:07:14.690 回答