2017-12-18 33 views
-2

ボトムナビゲーションビューのフラグメントNullPointerExceptionが私の断片の一つは、私はXMLでトグルボタンを持っている私には

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.stefan.findage.piano"> 

    <!-- TODO: Update blank fragment layout --> 

    <ToggleButton 
     android:id="@+id/metronome" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="ToggleButton" /> 

</FrameLayout> 

そして

toggleButton = (ToggleButton) getView().findViewById(R.id.metronome); 

しかし、それはクラッシュフラグメントとlogcatを開こうとするとそれがaだったことを示しています。

java.lang.NullPointerException:仮想メソッド 'android.view.View android.view.View.findVi nullオブジェクト参照

上ewById(int型)」がここでの主な活動です:

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     BottomNavigationView bottomNavigationView = (BottomNavigationView)findViewById(R.id.bottomView); 
     bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { 
      @Override 
      public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
       switch (item.getItemId()) 
       { 
        case R.id.moosic: 
         rhythm fragmentone = new rhythm(); 
         android.support.v4.app.FragmentTransaction fragmentTransaction3 = getSupportFragmentManager().beginTransaction(); 
         fragmentTransaction3.replace(R.id.frame, fragmentone, "rhythm"); 
         fragmentTransaction3.commit(); 
         return true; 
        case R.id.call: 
         intervals fragmenttwo = new intervals(); 
         android.support.v4.app.FragmentTransaction fragmentTransaction2 = getSupportFragmentManager().beginTransaction(); 
         fragmentTransaction2.replace(R.id.frame, fragmenttwo, "intervals"); 
         fragmentTransaction2.commit(); 
         return true; 
        case R.id.thinga: 
         piano fragmentthree = new piano(); 
         android.support.v4.app.FragmentTransaction fragmentTransaction1 = getSupportFragmentManager().beginTransaction(); 
         fragmentTransaction1.replace(R.id.frame, fragmentthree, "piano"); 
         fragmentTransaction1.commit(); 
         return true; 

       } 
       return false; 
      } 
     }); 

    } 

} 
+0

logcatからエラーメッセージを追加してください。 – Barns

+0

[NullPointerExceptionとは何か、それを修正するにはどうすればいいですか?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) ) – Zoe

+0

フラグメントがアクティビティから作成されたときに[getView]が返される可能性のある複製](https://stackoverflow.com/questions/9488595/getview-returning-null-when-fragment-has-been-created-from-an -activity) –

答えて

0

getViewメソッド()はnullを返すことがあります。以下のコードを使用してトグルボタンを参照してください

View view = inflater.inflate(R.layout.fragmentlayout, container, false); 
toggleButton = (ToggleButton) view.findViewById(R.id.metronome); 
関連する問題