2015-12-21 3 views
-1

это моя деятельность, откуда я отправляю СтатусПолучение Null из Bundle Фрагмент

case R.id.buttonMade: 
       { 
        Bundle bundle = new Bundle(); 
        Status ="0"; 
        bundle.putString("Status", Status); 
        FragmentAll fragInfo = new FragmentAll(); 
        fragInfo.setArguments(bundle); 
        Log.e(bundle.toString(),bundle.toString()); 
        startActivity(new Intent(FrontPageActivity.this, OrdersActivity.class)); 
        break; 
       } 

Это мой фрагмент JAVA класс

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     View rootView = inflater.inflate(R.layout.fragment_order_all, container, false); 
     sh_pref=getContext().getSharedPreferences("start", getContext().MODE_PRIVATE); 
     uName = sh_pref.getString("username", null); 

     final Bundle bundle = getArguments(); 
     Status1=bundle.getString("Status"); 
     if(Status1==null) 
      Toast.makeText(getActivity(),"Null",Toast.LENGTH_LONG).show(); 

    >error is 

Java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference 

Я могу передать данные от деятельности но не удалось получить во фрагменте , что вопрос

Спасибо

+0

Проверьте этот ответ: - http://stackoverflow.com/a/12739968/1384010 –

ответ

0

использовать эту функцию, чтобы получить данные:

Status1=getArguments().getString("Status"); 
+0

получать ту же ошибку –

+0

почему у проезжают Intent и startActivity? –

+0

код должен быть таким, как этот фрагмент.setArguments (bundle); \t \t \t FragmentManager fragmentManager = getFragmentManager(); \t \t \t fragmentManager.beginTransaction() \t \t \t \t \t .Надеть (R.id.frame, фрагмент) .commit(); –

0

В вашем случае R.id.buttonMade у слушателя

Вы устанавливаете аргументы фрагмента, но вы не прикреплены к bunble намерения startActivity (новый Intent (FrontPageActivity. это, OrdersActivity.class));

Если вы должны передать его через намерение затем использовать этот

i.putExtra ("Status", Status);

для фрагмента - используйте эту сделку -

    Bundle bundle = new Bundle(); 
        bundle.putString("Status", Status); 
        FragmentAll fragment = new FragmentAll(); 
        fragment.setArguments(bundle); 
        FragmentManager fragmentManager = getFragmentManager(); 
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
        fragmentTransaction.replace(R.id.container, fragment); 
        fragmentTransaction.addToBackStack(null); 
        fragmentTransaction.commit(); 
Смежные вопросы