Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';我不明白为什么字符串值突然变为null?_Java_Android_String_Android Intent_Oncreate - Fatal编程技术网

Java Can';我不明白为什么字符串值突然变为null?

Java Can';我不明白为什么字符串值突然变为null?,java,android,string,android-intent,oncreate,Java,Android,String,Android Intent,Oncreate,她的密码是我的 public static class DetailFragment extends Fragment { private String forecastData; private static final String LOG_TAG = DetailFragment.class.getSimpleName(); private static final String FORECAST_SHARE_HASHTAG ="#Su

她的密码是我的

 public static class DetailFragment extends Fragment {
        private String forecastData;

        private static final String LOG_TAG = DetailFragment.class.getSimpleName();

        private static final String FORECAST_SHARE_HASHTAG ="#SunshineApp";

        public DetailFragment() {

        }

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setHasOptionsMenu(true);

        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
           View rootView = inflater.inflate(R.layout.fragment_detail, container, false);
            //receive forecast data from the ForeCast Fragment
            Intent intent=getActivity().getIntent();
            forecastData=intent.getStringExtra(Intent.EXTRA_TEXT);
            Log.v(LOG_TAG,"data is "+forecastData);
            TextView textView=(TextView)rootView.findViewById(R.id.detail_text);
            textView.setText(forecastData);

            return rootView;
        }

        @Override
        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
            super.onCreateOptionsMenu(menu, inflater);
            inflater.inflate(R.menu.menu_detailfragment,menu);

            MenuItem menuItem=menu.findItem(R.id.action_share);
            // Get the provider and hold onto it to set/change the share intent.
            ShareActionProvider mShareActionProvider =
                     (ShareActionProvider) MenuItemCompat.getActionProvider(menuItem);

            // Attach an intent to this ShareActionProvider.  You can update this at any time,
            // like when the user selects a new piece of data they might like to share.
            if (mShareActionProvider!= null ) {
                mShareActionProvider.setShareIntent(createShareIntent());

            }
            else
            {
                Log.v(LOG_TAG,"Share Action Provider is null");
            }
        }
        public  Intent createShareIntent()
        {
            Log.v(LOG_TAG,"data is "+forecastData);
            Intent intent=new Intent(Intent.ACTION_SEND);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_TEXT,forecastData+DetailFragment.FORECAST_SHARE_HASHTAG);
            Log.v(LOG_TAG,"data is "+forecastData);
            return  intent;
        }
我绝对肯定我的意图是正确的,因为我可以与其他应用程序共享,它可以工作,如果你看到下面的日志,这是很清楚的

为什么会这样,我认为OnCreate()视图方法是在onCreateOptions菜单()之前调用的 ?我该怎么做才能纠正这个问题?

这里有一个想法:

  • 根据您的日志,输出首先显示在
    onCreateOptions菜单()
    方法中,最后一个显示在
    onCreateView()中。这意味着在
    onCreateView
    之前调用了
    oncreateoptions菜单()

  • 尝试将
    SethasOptions菜单(true)
    移动到其他地方,可能是在构造函数中,该构造函数应确保在
    onCreate
    onCreateView
    之后调用
    onCreateOptions菜单()
    。试试看

    • 这里有一个想法:

      • 根据您的日志,输出首先显示在
        onCreateOptions菜单()
        方法中,最后一个显示在
        onCreateView()中。这意味着在
        onCreateView
        之前调用了
        oncreateoptions菜单()

      • 尝试将
        SethasOptions菜单(true)
        移动到其他地方,可能是在构造函数中,该构造函数应确保在
        onCreate
        onCreateView
        之后调用
        onCreateOptions菜单()
        。试试看

        • 这里有一个想法:

          • 根据您的日志,输出首先显示在
            onCreateOptions菜单()
            方法中,最后一个显示在
            onCreateView()中。这意味着在
            onCreateView
            之前调用了
            oncreateoptions菜单()

          • 尝试将
            SethasOptions菜单(true)
            移动到其他地方,可能是在构造函数中,该构造函数应确保在
            onCreate
            onCreateView
            之后调用
            onCreateOptions菜单()
            。试试看

            • 这里有一个想法:

              • 根据您的日志,输出首先显示在
                onCreateOptions菜单()
                方法中,最后一个显示在
                onCreateView()中。这意味着在
                onCreateView
                之前调用了
                oncreateoptions菜单()

              • 尝试将
                SethasOptions菜单(true)
                移动到其他地方,可能是在构造函数中,该构造函数应确保在
                onCreate
                onCreateView
                之后调用
                onCreateOptions菜单()
                。试试看


              我想知道如何将代码从onCreateView()移动到onActvivityCreated()

              onCreateView用于返回视图


              onActivityCreated表示关联的活动已完成其方法onCreate()并已设置。

              您应该如何将代码从onCreateView()移动到onActvivityCreated()

              onCreateView用于返回视图


              onActivityCreated表示关联的活动已完成其方法onCreate()并已设置。

              您应该如何将代码从onCreateView()移动到onActvivityCreated()

              onCreateView用于返回视图


              onActivityCreated表示关联的活动已完成其方法onCreate()并已设置。

              您应该如何将代码从onCreateView()移动到onActvivityCreated()

              onCreateView用于返回视图


              onActivityCreated表示关联的活动已完成其方法onCreate()并已设置。

              EDIT:i moved
              Intent Intent=getActivity().getIntent();forecastData=intent.getStringExtra(intent.EXTRA_TEXT)
              onCreate()
              方法,仍然是sam结果了解如何使用调试器。尝试在没有它的情况下构建应用程序就像尝试在缺少一半工具的情况下构建房子一样。日志记录对于基本测试来说还不够吗?不。如果您使用调试器完成此操作,您将在比编写此问题所需的时间更短的时间内发现问题。你可以检查意图和它的额外内容,并确定到底发生了什么。日志记录用于,呃,Logging.EDIT:我移动了
              Intent-Intent=getActivity().getIntent();forecastData=intent.getStringExtra(intent.EXTRA_TEXT)
              onCreate()
              方法,仍然是sam结果了解如何使用调试器。尝试在没有它的情况下构建应用程序就像尝试在缺少一半工具的情况下构建房子一样。日志记录对于基本测试来说还不够吗?不。如果您使用调试器完成此操作,您将在比编写此问题所需的时间更短的时间内发现问题。你可以检查意图和它的额外内容,并确定到底发生了什么。日志记录用于,呃,Logging.EDIT:我移动了
              Intent-Intent=getActivity().getIntent();forecastData=intent.getStringExtra(intent.EXTRA_TEXT)
              onCreate()
              方法,仍然是sam结果了解如何使用调试器。尝试在没有它的情况下构建应用程序就像尝试在缺少一半工具的情况下构建房子一样。日志记录对于基本测试来说还不够吗?不。如果您使用调试器完成此操作,您将在比编写此问题所需的时间更短的时间内发现问题。你可以检查意图和它的额外内容,并确定到底发生了什么。日志记录用于,呃,Logging.EDIT:我移动了
              Intent-Intent=getActivity().getIntent();forecastData=intent.getStringExtra(intent.EXTRA_TEXT)
              onCreate()
              方法,仍然是sam结果了解如何使用调试器。尝试在没有它的情况下构建应用程序就像尝试在缺少一半工具的情况下构建房子一样。日志记录还不足以进行基本测试吗?不。如果您使用调试器完成此操作,您会发现
              01-04 18:36:02.370    6121-6121/com.example.droid.sunshine V/DetailFragment﹕ in optionMenu method data is null
              01-04 18:36:02.380    6121-6121/com.example.droid.sunshine V/DetailFragment﹕ in create intent data is null
              01-04 18:36:02.380    6121-6121/com.example.droid.sunshine V/DetailFragment﹕ in create intent data is null
              01-04 18:36:02.650    6121-6121/com.example.droid.sunshine V/DetailFragment﹕ in view method data is Wed, Jan 7 - Clear - 27/24