0

私はViewFlipperを導入する前に完全に動作していたアプリケーションを作成しました。私は本当にこれを使用する必要がありますが、今ではこの例外に取り残されています。java.lang.NullPointerException:nullオブジェクト参照で仮想メソッドを呼び出そうとしました...

frag_home.java

public class Frag_home extends Fragment { 
private String mParam1; 
private String mParam2; 
Animation fade_in, fade_out; 
ViewFlipper viewFlipper; 

private OnFragmentInteractionListener mListener; 

public Frag_home() { 
    // Required empty public constructor 
} 


// TODO: Rename and change types and number of parameters 
public static Frag_home newInstance(String param1, String param2) { 
    Frag_home fragment = new Frag_home(); 
    Bundle args = new Bundle(); 
    args.putString(ARG_PARAM1, param1); 
    args.putString(ARG_PARAM2, param2); 
    fragment.setArguments(args); 
    return fragment; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (getArguments() != null) { 
     mParam1 = getArguments().getString(ARG_PARAM1); 
     mParam2 = getArguments().getString(ARG_PARAM2); 
    } 

    fade_in= AnimationUtils.loadAnimation(getActivity(), R.anim.fade_in); 
    fade_out=AnimationUtils.loadAnimation(getActivity(),R.anim.fade_out); 

    viewFlipper.setAnimation(fade_in); 
    viewFlipper.setAnimation(fade_out); 

    viewFlipper.setAutoStart(true); 
    viewFlipper.setFlipInterval(1000); 
    viewFlipper.startFlipping(); 

} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    return inflater.inflate(R.layout.fragment_frag_home, container, false); 
} 

// TODO: Rename method, update argument and hook method into UI event 
public void onButtonPressed(Uri uri) { 
    if (mListener != null) { 
     mListener.onFragmentInteraction(uri); 
    } 
} 

@Override 
public void onAttach(Context context) { 
    super.onAttach(context); 
    if (context instanceof OnFragmentInteractionListener) { 
     mListener = (OnFragmentInteractionListener) context; 
    } else { 
     throw new RuntimeException(context.toString() 
       + " must implement OnFragmentInteractionListener"); 
    } 
} 

@Override 
public void onDetach() { 
    super.onDetach(); 
    mListener = null; 
} 
public interface OnFragmentInteractionListener { 
    // TODO: Update argument type and name 
    void onFragmentInteraction(Uri uri); 
} 

Logcat:

04-09 18:29:02.196 27863-27863/com.example.aastha.trying E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: com.example.aastha.trying, PID: 27863 
                     java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ViewFlipper.setAnimation(android.view.animation.Animation)' on a null object reference 
                      at com.example.aastha.trying.Frag_home.onCreate(Frag_home.java:70) 
                      at android.support.v4.app.Fragment.performCreate(Fragment.java:1951) 
                      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1029) 
                      at android.support.v4.app.BackStackRecord.ensureFragmentsAreInitialized(BackStackRecord.java:1077) 
                      at android.support.v4.app.BackStackRecord.beginTransition(BackStackRecord.java:1032) 
                      at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:658) 
                      at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617) 
                      at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517) 
                      at android.os.Handler.handleCallback(Handler.java:739) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:145) 
                      at android.app.ActivityThread.main(ActivityThread.java:5832) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:372) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 

上記のコードは私にこの例外を与える:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ViewFlipper.setAnimation(android.view.animation.Animation)' on a null object reference 

私は何かがこの部分

fade_in= AnimationUtils.loadAnimation(getActivity(), R.anim.fade_in); 
fade_out=AnimationUtils.loadAnimation(getActivity(),R.anim.fade_out); 
と間違っていると思います

どうすれば解決できますか?助けてください。

+2

既に、あなたは 'viewFlipper'を使用する前に初期化する必要があると言いました。なぜあなたは同じことを二度尋ねていますか? –

+1

もう一度、[同じ質問](http://stackoverflow.com/questions/36517360/java-lang-nullpointerexception-attempt-to-invoke-virtual-method-on-a-null-objec)に質問してください。 。 –

答えて

0

それはあなたが

@Override 
public void onCreate(Bundle savedInstanceState) { 
//---------Your extra codes ------ 
    ViewFlipper viewFlipper = (ViewFlipper) findViewById(R.id.yourViewFlipperId); 
//---Then only use this viewFlipper 

    viewFlipper.setAnimation(fade_in); 
    viewFlipper.setAnimation(fade_out); 


} 
0

を次のように親切あなたがviewFlipperはNullPointerExceptionが故に、初期化されていないようなあなたのviewFlipperonCreate()内部メソッドを初期化する必要があるために、数分前に求めていたのと同じ質問です。あなたはそれを使用する前にviewFlipperを初期化する必要があります。

関連する問題

 関連する問題