2017-01-21 9 views
0

私のアンドロイドのアクティビティの1つでアクションバーにアクセスし、以下のエラーが表示される問題に直面しています。下記のコードを見つけてください。間違いを私は作った。ご協力いただきありがとうございます!!!アクティビティのアクションバーにアクセスできません

エラーメッセージ:

java.lang.RuntimeException: Unable to start activity ComponentInfo{blueman.vetri.com.materialtest/blueman.vetri.com.materialtest.ui.Task1}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setDisplayShowHomeEnabled(boolean)' on a null object reference 

1)活性

public class Task1 extends AppCompatActivity { 

private Toolbar toolbar1; 
private Button leave_your_bed; 
private Button find_a_place; 
private Button opening; 
private Button practice; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(blueman.vetri.com.materialtest.R.layout.activity_task1); 
    leave_your_bed=(Button)findViewById(blueman.vetri.com.materialtest.R.id.leave_your_bed); 
    find_a_place=(Button)findViewById(blueman.vetri.com.materialtest.R.id.find_a_place); 
    opening=(Button)findViewById(blueman.vetri.com.materialtest.R.id.opening); 
    practice=(Button)findViewById(blueman.vetri.com.materialtest.R.id.practice); 

    leave_your_bed.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i=new Intent(getApplicationContext(), LeaveYourBed.class); 
      startActivity(i); 
     } 
    }); 
    find_a_place.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i=new Intent(getApplicationContext(), FindPlace.class); 
      startActivity(i); 

     } 
    }); 
    opening.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i=new Intent(getApplicationContext(), Opening.class); 
      startActivity(i); 
     } 
    }); 
    practice.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i=new Intent(getApplicationContext(), Practice.class); 
      startActivity(i); 
     } 
    }); 

    toolbar1 = (Toolbar) findViewById(R.id.app_bar); 
    setSupportActionBar(toolbar1); 
    getSupportActionBar().setDisplayShowHomeEnabled(true); 
} 
} 

2)app_bar XMLファイル:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:background="@color/colorPrimary" 
    android:theme="@style/MyCustomToolBarTheme" 
> 
</android.support.v7.widget.Toolbar> 

3)Style.xmlファイル:

<resources> 

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

<style name="MyCustomToolBarTheme" parent="ThemeOverlay.AppCompat.Light"> 
    <item name="android:textColorPrimary">#FFF</item> 
    <item name="android:textColorSecondary">#000</item> 
</style> 

</resources> 
+0

私は「ID」 –

+0

で 'app_bar'を持つ' id'が表示されません。私のミスを見つけました..私は活動のバーにXMLを含めませんでした –

+0

を追加した場合でも、あなたの活動のXML –

答えて

0
あなた super.onCreateの下に右に ActionBarを設定し、あなたのコードを移動し、以下のリントチェックを追加

toolbar1 = (Toolbar) findViewById(R.id.app_bar); 
setSupportActionBar(toolbar1); 

if (getSupportActionBar() != null) { 
    getSupportActionBar().setDisplayShowHomeEnabled(true); 
} 

あなたapp_bar.xmlファイルに以下を追加します。これらの解決策の一つが解決しなければならない

android:id="@+id/app_bar" 

NPE。

+0

こんにちはニック、私は両方のソリューションを試みたが、私はまだアクションバーにアクセスすることができません。私は最初のソリューションを使用する場合、私は活動にアクセスできますが、アクションバーが表示されていません。私は何かを変更する必要がある場合はお知らせください。 –

関連する問題