2015-12-26 2 views
2

Я использую Drawer в плавающей кнопке фрагмента, значение которой получает значение null.

При нажатии на элемент Ящика он закрывается. Может ли кто-нибудь объяснить, почему?

Вот мой код.

package com.example.mubeen.emei; 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.View; 
import android.view.ViewGroup; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.Button; 
import android.widget.TextView; 

/** 
* A simple {@link Fragment} subclass. 
*/ 
public class Category_Item extends Fragment { 

    FloatingActionButton fab; 
    public Category_Item() { 
     // Required empty public constructor 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       SaveCategory fragment = new SaveCategory(); 
       android.support.v4.app.FragmentTransaction fragmentTransaction = 
         getActivity().getSupportFragmentManager().beginTransaction(); 
       fragmentTransaction.replace(R.id.fragment1_container, fragment); 
       fragmentTransaction.commit(); 
       getActivity().setTitle(R.string.Save_Category); 
       return inflater.inflate(R.layout.fragment_category__item, container, false);  
    } 
    } 
} 

LogCat

12-26 05:22:50.952 9530-9530/com.example.mubeen.emei W/PathParser: Points are too far apart 4.000000596046461 
12-26 05:22:53.902 9530-9530/com.example.mubeen.emei D/AndroidRuntime: Shutting down VM 
12-26 05:22:53.902 9530-9530/com.example.mubeen.emei E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.example.mubeen.emei, PID: 9530 
java.lang.NullPointerException: Attempt to invoke virtual method 'void 
android.support.design.widget.FloatingActionButton.setOnClickListener(android.view.View$OnClickListener)' 
on a null object reference 
at com.example.mubeen.emei.Category_Item.button(Category_Item.java:49) 
at com.example.mubeen.emei.Category_Item.onCreateView(Category_Item.java:37) 
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:106) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:124) 
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) 
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) 
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: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) 
+1

Очистите ваше сообщение, пожалуйста. Читайте часто задаваемые вопросы или посещайте самые популярные сообщения, чтобы узнать, как должен выглядеть questuion – piotrek1543

ответ

0

инициализации FloatingActionButton ФАБ в коде ..

0

В вашем методе onCreateView использовать это.

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
       //Enter your code here to do something after clicking Floating Actionbar 
     } 
    }); 

Я думаю, это может вам помочь.

Смежные вопросы