2014-02-09 2 views
0

Я пытаюсь создать приложение в андроид платформы с 3 фрагментамиJava код не работает в осколке деятельности

Когда я пытаюсь ввести некоторые Java-код внутри класса фрагмента, я всегда эта ошибка: java.lang.NullPointerException

Например, с помощью простой кнопки, чтобы изменить вид:

package com.test; 



import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentTransaction; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.Button; 

public class creation extends Fragment { 


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

     View root = inflater.inflate(R.layout.creation, container, false); 

     final Button ok = (Button)getView(). findViewById(R.id.button3); 
     ok.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // Create new fragment and transaction 
       Fragment newFragment = new mesvideos(); 
       // consider using Java coding conventions (upper char class names!!!) 
       FragmentTransaction transaction = getFragmentManager().beginTransaction(); 

       // Replace whatever is in the fragment_container view with this fragment, 
       // and add the transaction to the back stack 
       transaction.replace(R.layout.creation, newFragment); 
       transaction.addToBackStack(null); 

       // Commit the transaction 
       transaction.commit(); 


     } 
    }); 
return root ; 
} 

Или с VideoView:

mVideoView = (VideoView) findViewById(R.id.videoView1); 
      mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + 
         "/" + R.raw.presentation)); 
      mVideoView.setMediaController(new MediaController(this)); 
      mVideoView.requestFocus(); 
+0

вставьте полную трассировку стека (скопируйте часть logcat, где существует ошибка) –

+0

Ошибка указывает вам точную строку, в которой это происходит. В 99% всех случаев есть '.' В этой строке. Вещь перед '.' является' null'. В вашем случае 'getView()' – zapl

ответ

3

Вместо того, чтобы просто сказать, что вы столкнулись с NullPointerException, укажите полный стек или сообщите нам, в какой строке вашего кода происходит NPE.

FWIW, ваш

final Button ok = (Button)getView(). findViewById(R.id.button3); 

, вероятно, следует

final Button ok = (Button) root.findViewById(R.id.button3); 

Я подозреваю, что так как вы только создали вид корня и не вернулись/установить еще, GetView() возвращает null

PS. Название вашего класса «создание» нестандартно. Имена классов Java должны начинаться с заглавной буквы, и если ваш класс расширяет фрагмент, тогда принято, чтобы название класса заканчивалось «Фрагмент». Например: «CreationFragment».

Смежные вопросы