ActionBar后退按钮崩溃我的应用程序

时间:2017-12-19 15:42:03

标签: android-actionbar

当我想使用后退按钮表格操作栏回到我的Query query= em.createQuery("select sh from SheetItem sh"); 时,我的学校项目有问题我有NE

CurentCourseActivity

虽然我没有出现正常的后退按钮问题。 当我们从Attempt to invoke virtual method 'java.util.List `com.example.pingu.mylanguages.Language.getList()' on a null object reference at com.example.pingu.mylanguages.CurentCourseActivity.onCreate(CurentCourseActivity.java:37)` 中选择Lesson进行新活动时。当我们从GridView选择后退按钮时,我就有了NE。

CourentCourseActivity:

ActionBar

LessonActivity:

public class CurentCourseActivity extends AppCompatActivity {
    private Language language;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d("s","onCreate");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_curent_course);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        if (savedInstanceState!=null){
           language = (Language) savedInstanceState.getSerializable("Lang");
            Log.d("xx","Coś ma");
        }

        if (getIntent().getExtras() != null) {
            language = (Language) getIntent().getSerializableExtra("Lang"); //Obtaining data
        }


        GridView grid = (GridView) findViewById(R.id.grid);
        CurrentCourseAdapter adapter = new CurrentCourseAdapter(this, R.layout.grid_item_curent_course, language.getList());
        grid.setAdapter(adapter);

        grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Intent intent = new Intent(CurentCourseActivity.this,LessonActivity.class);
                intent.putExtra("Lesson",(Lesson)language.getList().get(i));
                startActivity(intent);
            }
        });


        getSupportActionBar().setTitle(language.getName());
    }

}

1 个答案:

答案 0 :(得分:0)

答案最简单,我期待。因此我需要覆盖此按钮并按正常的后退按钮执行,因为ActrionBar后退按钮会破坏父活动。

public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {

case android.R.id.home:
    onBackPressed();
    return true;
}

return super.onOptionsItemSelected(item);
}