rootView上的Android片段空指针异常[关闭]
Posted
技术标签:
【中文标题】rootView上的Android片段空指针异常[关闭]【英文标题】:Android fragment null pointer exception on rootView [closed] 【发布时间】:2015-08-08 18:56:14 【问题描述】:任何人都可以帮我解决这个问题吗?我正在使用 android 导航片段模板,而且我是 android 新手,我刚刚开始向片段 rootView 和 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片段空指针异常[关闭]的主要内容,如果未能解决你的问题,请参考以下文章