2015-05-26 3 views
-4

Может кто-нибудь помочь мне с этим Я использую шаблон фрагмента навигации для Android и я новичок в android, я только что начал добавлять некоторые фрагменты к фрагменту rootView и TTS но я прихожу с ошибкой при добавлении кнопки onClickListener к кнопке в моем корневом элементе, пробовал много, но я просто не могу ее закрепить, могу ли я попросить кого-нибудь, пожалуйста, взглянуть и сообщить мне, где я ' м идет не так, вот мой кодИсключение null null указателя фрагмента Android в 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 бы кто-нибудь хотел бы предложить, почему?

ответ

0

Вы не могли бы двигаться

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

К Methode onViewCreated?

И где находится функция setOnInitListener для реализации фрагмента?

+0

Я думал, что это уже было в этом методе? и я устанавливаю слушателя в верхнем «общедоступном статическом классе». PlaceholderFragment extends Fragment реализует TextToSpeech.OnInitListener ' – martinseal1987

+0

OnViewCreated - это не то же самое, что OnCreateView. Вы реализуете его сверху, но вы нигде не устанавливаете его. – Exception

+0

спасибо @Exception ive внедрил ваши предложения, (спасибо вам), но им все еще не удалось найти решение, которое по-прежнему дает мне такое же исключение нулевого указателя – martinseal1987