2016-05-09 17 views
-3

私はアンドロイド・アプリケーションで作業していますが、アクティビティの一部のデータをナビゲーション・ドロワーの形でアクティビティに表示するインテントに渡したいと思いますが、ポインタ例外。 ここに私の活動方法NullPointerExceptionアクティビティからインテントへのデータの受け渡し

String EXTRA_LOGIN_DATA = "TATA"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Intent intent = getIntent(); 
    messageText = intent.getStringExtra(userData); 


    Bundle bundle = new Bundle(); 
    bundle.putString(EXTRA_LOGIN_DATA, messageText); 
    // set Fragmentclass Arguments 
    HomeFragment fragobj = new HomeFragment(); 
    fragobj.setArguments(bundle); 

されており、ここで私の断片方法である:

String EXTRA_USER_DATA; 
private int lastX = 0; 
TextView textView; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_home, container, false); 


    Bundle bundle = getArguments(); 
    user_data = bundle.getString(new MainActivity().EXTRA_LOGIN_DATA); 

しかし、私は、コードを実行したときに私が取得:

`E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: info.androidhive.slidingmenu, PID: 7508 
                     java.lang.RuntimeException: Unable to start activity ComponentInfo{info.androidhive.slidingmenu/info.androidhive.slidingmenu.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:148) 
                      at android.app.ActivityThread.main(ActivityThread.java:5417) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference 
                      at info.androidhive.slidingmenu.HomeFragment.onCreateView(HomeFragment.java:51) 
                      at android.app.Fragment.performCreateView(Fragment.java:2220) 
                      at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:973) 
                      at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1148) 
                      at android.app.BackStackRecord.run(BackStackRecord.java:793) 
                      at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1535) 
                      at android.app.FragmentController.execPendingActions(FragmentController.java:325) 
                      at android.app.Activity.performStart(Activity.java:6252) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:148) 
                      at android.app.ActivityThread.main(ActivityThread.java:5417) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)` 

は誰も私を助けてくださいことができる場所例外が発生し、解決する方法

+0

このコードから新しい文字列** "TATA" **を取得したら、新しいMainActivity().EXTRA_LOGIN_DATA'をチェックしてください。 ?? –

+0

'fragobj.setArguments(bundle);の後のコード行をさらに表示します。 –

+0

メイン断片のナビゲーション・ドロワーとして表示されます – Nyerere

答えて

0

setArgumentsをAdd to Activityに追加する前に、レイアウトxmlにフラグメントを書き込まないでください。

Bundle bundle = new Bundle(); 
bundle.putString("EXTRA_LOGIN_DATA", "messageText"); 
HomeFragment fragobj = new HomeFragment(); 
fragobj.setArguments(bundle); 

およびフラグメントonCreateView方法で:

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

    String strtext = getArguments().getString("EXTRA_LOGIN_DATA"); 
    return inflater.inflate(R.layout.fragment_home, container, false); 
} 
+0

申し訳ありませんが、私のフラグメントは、ナビゲーションドロアーとしてアクティビティに入れました。 – Nyerere

+0

@Nyerereあなたのフラグメント内の 'setArguments'をオーバーライドして引数を得ることができます。' NullPointException'の原因は 'setArguments'の前に' onCreateView' – rainash

0

getSupportFragmentManager().beginTransaction().replace(placeHolderId, fragment).commit();を使用しています。その値を正しいものにするよりもnullが得られる場合。

0

が最初にあなたの "messageText" をチェックし、ちょうどあなたのように意図してデータを送信する活動からsetArguments

関連する問題