2014-03-24 45 views
0

我正在處理當前應用程序中的片段。片段中的NullPointerException

我正在顯示3個不同的選項卡,每個選項卡都有一個片段。在訪問視圖時,我得到一個空指針異常。這裏是代碼片段:

public class DetailsFragment extends Fragment { 

private TextView text; 

public DetailsFragment() { 
    // TODO Auto-generated constructor stub 

} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    View v = LayoutInflater.from(getActivity()).inflate(R.layout.ride_details_fragment, 
      null); 
    text = (TextView) v.findViewById(R.id.txt_ride_name); 

      text.setText("Current Tab is: "); 

    return v; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onActivityCreated(savedInstanceState); 
} 
// 

} 

異常是行text.setText。這裏是例外日誌:

03-24 19:15:40.138: E/AndroidRuntime(13611): FATAL EXCEPTION: main 
03-24 19:15:40.138: E/AndroidRuntime(13611): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.bb/com.android.ui.HomeActivity}: java.lang.NullPointerException 

03-24 19:15:40.138: E/AndroidRuntime(13611): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2081) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2106) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.app.ActivityThread.access$700(ActivityThread.java:134) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1217) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.os.Looper.loop(Looper.java:137) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.app.ActivityThread.main(ActivityThread.java:4856) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at java.lang.reflect.Method.invokeNative(Native Method) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at java.lang.reflect.Method.invoke(Method.java:511) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at dalvik.system.NativeStart.main(Native Method) 
03-24 19:15:40.138: E/AndroidRuntime(13611): Caused by: java.lang.NullPointerException 
03-24 19:15:40.138: E/AndroidRuntime(13611): at com.android.ride.ui.DetailsFragment.onCreateView(DetailsFragment.java:43) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:551) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1178) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.app.Activity.performStart(Activity.java:5057) 
03-24 19:15:40.138: E/AndroidRuntime(13611): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2054) 
03-24 19:15:40.138: E/AndroidRuntime(13611): ... 11 more 

有人能幫我找到異常的根本原因嗎?幫助我會很棒。

謝謝。

回答

0

異常在text.setText行中。

您的ride_details_fragment.xml沒有TextView,編號爲txt_ride_name

要麼你膨脹了錯誤的佈局,要麼你的佈局沒有指定id的視圖。

+0

我誇大了正確的佈局。此外,我有相同的ID的文本。我已經過交叉檢查。謝謝 – Nemat

+0

@Nemat不能。你錯過了一些東西。 NPE是因爲'text'爲空,並且沒有正確初始化。我再次強調,你錯誤佈局錯誤,或者你引用了錯誤的ID。 – Raghunandan

1

你爲什麼想讓另一個充氣器而不是提供一個?

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.ride_details_fragment, 
       container, false); 
    text = (TextView) v.findViewById(R.id.txt_ride_name); 
    text.setText("Current Tab is: "); 

    return v; 
} 

並請確保您有ID = txt_ride_name(區分大小寫)內ride_details_fragment.xml

+0

現在,我正在使用提供的inflater。一切都已到位。仍然得到相同的錯誤。 – Nemat

+0

@Nemat所以請顯示'ride_details_fragment.xml' – nikis

0

檢查你的ride_details_fragment包含TextView的id爲txt_ride_name與否。這將是這個例外的原因。

+0

謝謝....但我不知道出了什麼問題。我創建了另一個佈局,複製粘貼最後一個佈局,它工作正常。 :) – Nemat

相關問題