2015-03-12 3 views
0

Приложение продолжает разбиваться. Он говорит, что в actionBar.setDisplayHomeAsUpEnabled (true) есть исключение null-указателя ;. Я проверил свой код, есть кнопка для кнопки «Назад». Он определен и возвращается к основной активности карт. В onOptionsItemSelected (меню MenuItem) я положил футляр для моей кнопки возврата. Я не знаю, почему это дает мне ошибку.null указатель исключение в действииBar.setDisplayHomeAsUpEnabled (true);

public class AddressList extends ActionBarActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_address_list); 
    // get action bar 
    ActionBar actionBar = getActionBar(); 

    // Enabling Up/Back navigation 
    actionBar.setDisplayHomeAsUpEnabled(true); 
    ListView listview = (ListView) findViewById(R.id.listView); 

} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_address_list, menu); 

    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    switch (item.getItemId()) { 
     case R.id.button: 
      Add(); 
      return true; 
     case R.id.back: 
      Back(); 
      return true; 
    } 


    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
    } 

private void Back(){ 
Button button = (Button) findViewById(R.id.back); 
button.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 

     Intent intent = new Intent(AddressList.this, MapsActivity.class); 
     startActivity(intent); 
     finish(); 
    } 
}); 

    } 
    private void Add() { 
    Button button = (Button) findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      Intent intent = new Intent(AddressList.this, SilentGeofence.class); 
      startActivity(intent); 
      finish(); 
     } 
    }); 
} 
} 

Это мой файл меню.xml. Вы можете видеть, что у меня есть кнопка возврата.

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
tools:context="com.example.anusha.app.AddressList"> 
<item android:id="@+id/action_settings" android:title="@string/action_settings" 
    android:orderInCategory="100" app:showAsAction="never" /> 

<item android:id="@id/button" 
    android:title="+" 
    app:showAsAction="ifRoom"> 

    <item android:id="@+id/back" 
     android:title="List" 
     app:showAsAction="ifRoom" /> 
</item> 

</menu> 
+0

В вашем файле манифеста Android в действии добавьте 'android: theme =" @ android: style/Theme.Holo "или [использовать это решение] (http://stackoverflow.com/a/27235537/2749470) –

+0

Невозможно запустить Activity ComponentInfo {com.example.anusha.app/com.example.anusha.app.AddressList}: java.lang.IllegalStateException: вам нужно использовать тему Theme.AppCompat (или потомок) с этим действием. – anu

ответ

1

Изменить

ActionBar actionBar = getActionBar(); 

в

ActionBar actionBar = getSupportActionBar(); 


Причина сделать это изменение в том, что: ваш activty расширяется от ActionBarActivity, что означает, что вы используете ActionBar из библиотеки поддержки , поэтому вы должны использовать getSupportActionBar().

+0

Это должно быть 'getSupportActionBar()'. – eightx2

+0

@ eightx2 Да, моя ошибка. Спасибо, что указали – Pooja