rootView上的Android片段空指针异常[关闭]

Posted

技术标签:

【中文标题】rootView上的Android片段空指针异常[关闭]【英文标题】:Android fragment null pointer exception on rootView [closed] 【发布时间】:2015-08-08 18:56:14 【问题描述】:

任何人都可以帮我解决这个问题吗?我正在使用 android 导航片段模板,而且我是 android 新手,我刚刚开始向片段 roo​​tView 和 TTS 引擎添加一些视图,但我来了将 onClickListener 添加到我的 rootView 中的按钮时出现错误已经尝试了很多,但我无法确定它我可以请某人查看并让我知道我哪里出错了, 这是我的代码

 public static class PlaceholderFragment extends Fragment implements    
 TextToSpeech.OnInitListener 

    private TextToSpeech myTTS;
    private int MY_DATA_CHECK_CODE = 0;
    private EditText Scr;
    /**
     * The fragment argument representing the section number for this
     * fragment.
     */
    private static final String ARG_SECTION_NUMBER = "section_number";

    /**
     * Returns a new instance of this fragment for the given section
     * number.
     */
    public static PlaceholderFragment newInstance(int sectionNumber) 
        PlaceholderFragment fragment = new PlaceholderFragment();
        Bundle args = new Bundle();
        args.putInt(ARG_SECTION_NUMBER, sectionNumber);
        fragment.setArguments(args);
        return fragment;
    

    public PlaceholderFragment() 
    

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) 

        View rootView = inflater.inflate(R.layout.fragment_main, container,  
false);
        Scr = (EditText) rootView.findViewById(R.id.editText);





        return rootView;
    

    public void onActivityResult(int requestCode, int resultCode, Intent  
 data) 
        if (requestCode == MY_DATA_CHECK_CODE) 
            if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) 
                myTTS = new TextToSpeech(getActivity(), this);
            
            else Intent installTTSIntent = new Intent();

installTTSIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
                startActivity(installTTSIntent);
            
        
    
    public void onInit(int initStatus) 
        //check for successful instantiation
        if (initStatus == TextToSpeech.SUCCESS) 
            if (myTTS.isLanguageAvailable(Locale.UK) == 
TextToSpeech.LANG_AVAILABLE)
                myTTS.setLanguage(Locale.UK);
         else if (initStatus == TextToSpeech.ERROR) 
            Toast.makeText(getActivity(), "Sorry! Text To Speech failed...", 
Toast.LENGTH_LONG).show();
        







    

    public void onViewCreated(View rootView, Bundle savedInstanceState) 
        super.onViewCreated(rootView, savedInstanceState);
        Scr.setEnabled(false);
        Intent checkTTSIntent = new Intent();
        checkTTSIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
        startActivityForResult(checkTTSIntent, MY_DATA_CHECK_CODE);
        Button speakButton = (Button) rootView.findViewById(R.id.speak);
        speakButton.setOnClickListener(new View.OnClickListener() 

            @Override
            public void onClick(View v) 


            
        );
    

感谢所有帮助 在我眨眼之前,我的问题已经得到了 -3,有人愿意提出原因吗?

【问题讨论】:

【参考方案1】:

你介意搬家吗

Intent checkTTSIntent = new Intent(); checkTTSIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); startActivityForResult(checkTTSIntent, MY_DATA_CHECK_CODE); 

到 onViewCreated 方法?

您在片段实现中设置OnInitListener 的部分在哪里?

【讨论】:

我以为它已经在那个方法中了?我将监听器设置在顶部'公共静态类 PlaceholderFragment 扩展片段实现 TextToSpeech.OnInitListener' OnViewCreated 与 OnCreateView 不同。你在顶部实现它,但你没有在任何地方设置它。 谢谢@Exception 我实现了你的建议,(谢谢顺便说一句)但我仍然没有更接近解决它仍然给我同样的空指针异常 哪一行会抛出这个空指针异常? ive 更改了上面的代码以显示我做了什么,它在编辑文本上抛出空指针,尝试在 null 上调用虚拟方法 'void android.widget.EditText.setEnabled(boolean)'对象引用

以上是关于rootView上的Android片段空指针异常[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Android 应用程序不断因空指针异常而崩溃

片段 getArguments() 空指针异常

操作栏上不确定的进度条上的空指针异常

Android - 接口callBack抛出空指针异常

Android:媒体浏览器客户端上的播放状态返回空指针异常

片段中的空指针异常