2014-03-30 48 views
0

嗨,有人能告诉我什么是错误的下面的代码。 logcat在onCreate方法中表示它。所有的主要活动似乎都是正确的,因为我已经通过了字符串包。Android Java,getString从主要活动到一个片段问题

@SuppressLint("NewApi") 
public class CurrentBookingFragment extends Fragment { 

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

    View view =inflater.inflate(R.layout.current_booking_fragment, container, false); 

    Bundle bundle = this.getArguments(); 

    String strtext = this.getArguments().getString("GetStringPUFirstLine"); 

    TextView CurrentBookingFragmentTV = (TextView)view.findViewById(R.id.CurrentBookingFragmentTV); 

    CurrentBookingFragmentTV.setText(strtext); 

    return view; 
    } 
} 

这里是日志:

03-30 21:59:30.385: E/AndroidRuntime(30843): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at dalvik.system.NativeStart.main(Native Method) 
03-30 21:59:30.385: E/AndroidRuntime(30843): Caused by: android.view.InflateException: Binary XML file line #45: Error inflating class fragment 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:361) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.app.Activity.setContentView(Activity.java:1956) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at com.example.prototype.MainActivity.onCreate(MainActivity.java:88) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.app.Activity.performCreate(Activity.java:5372) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257) 
03-30 21:59:30.385: E/AndroidRuntime(30843): ... 11 more 
03-30 21:59:30.385: E/AndroidRuntime(30843): Caused by: java.lang.NullPointerException 
03-30 21:59:30.385: E/AndroidRuntime(30843): at com.example.prototype.CurrentBookingFragment.onCreateView(CurrentBookingFragment.java:49) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.app.Fragment.performCreateView(Fragment.java:1699) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:879) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1053) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1155) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.app.Activity.onCreateView(Activity.java:4966) 
03-30 21:59:30.385: E/AndroidRuntime(30843): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:695) 
03-30 21:59:30.385: E/AndroidRuntime(30843): ... 21 more 

创建片段:

 Fragment CurrentBookingFragment; 
    CurrentBookingFragment = new CurrentBookingFragment(); 
    FragmentManager fm = getFragmentManager(); 

    Bundle bundle=new Bundle(); 
    bundle.putString("GetStringPUFirstLine", "GetStringPUFirstLine"); 

    CurrentBookingFragment.setArguments(bundle); 

    FragmentTransaction fragmentTransaction = fm.beginTransaction(); 
    fragmentTransaction.replace(R.id.BookingFragment, CurrentBookingFragment); 
    fragmentTransaction.commit(); 
+0

如果您的应用程序崩溃,请从logcat发布堆栈跟踪 – Karakuri

+0

检查您的包是否为空。并且在显示片段时检查你是否使用了setArguments()。 – joao2fast4u

+0

bundle不为null,使用setArguments的iam。我将发布日志 – user3247335

回答

0

尝试在onActivityCreated设置文本(){}。

@Override 
public void onActivityCreated(Bundle savedInstanceState) 
{ 
    TextView CurrentBookingFragmentTV = (TextView)view.findViewById(R.id.CurrentBookingFragmentTV); 

    CurrentBookingFragmentTV.setText(strtext);  
} 
+0

我不能在当前方法中设置此方法。 (TextView)旁边的“视图”究竟是什么? – user3247335