2016-09-06 14 views
0

私のアプリケーションコールのデモではListActivityを拡張して、戻るボタンのナビゲーションアイコンを使いたいと思います。 public class demo extends ListActivityと私はListActivityListActivityのバックナビゲーションアイコンの使い方

+0

私はあなたの['setDisplayHomeAsUpEnabled()'](https://developer.android.com/reference/android/support/v7/app/ActionBar.html#setDisplayHomeAsUpEnabled(boolean))メソッドを探していると思います'ActionBar'。 – earthw0rmjim

答えて

0

は、この行を書く別のアクティビティを拡張して変更したくない:ListActivity getSupportActionBar

assert getActionBar() != null; 
    getActionBar().setDisplayHomeAsUpEnabled(true); 

がサポートされていないが 例も可能かもしれないどのように私を提案してください。あなたはActionbar

を使うべきか、このようにそのためのデリゲートメソッドを使用することができます。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    AppCompatCallback callback = new AppCompatCallback() { 
     @Override 
     public void onSupportActionModeStarted(ActionMode actionMode) { 
     } 

     @Override 
     public void onSupportActionModeFinished(ActionMode actionMode) { 
     } 

     @Nullable 
     @Override 
     public ActionMode onWindowStartingSupportActionMode(ActionMode.Callback callback) { 
      return null; 
     } 
    }; 

    AppCompatDelegate delegate = AppCompatDelegate.create(this, callback); 

    delegate.onCreate(savedInstanceState); 
    delegate.setContentView(R.layout.saved_report_activity); 

    Toolbar toolbar= (Toolbar) findViewById(R.id.toolbar); 
    delegate.setSupportActionBar(toolbar); 
    delegate.getSupportActionBar().setDisplayShowHomeEnabled(true); 

    toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha); 
    toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      NavUtils.navigateUpFromSameTask(SomeActivity.this); 
     } 
    }); 

をし、あなたのAppCompatCallbackインポートV7 libにあることを確認してください。

import android.support.v7.app.AppCompatCallback; 
import android.support.v7.app.AppCompatDelegate; 

ベストアプローチは、Delegate for ListActivityです。

+0

あなたのコードを使用しましたが、nullポインタ例外が発生しました。私はgetActionBar()を呼び出しました。setDisplayHomeAsUpEnabled(true);とAppCompatDelegateデリゲート= AppCompatDelegate.create(これ、コールバック);コードは私のアプリで実行されていません –

+0

私の答えを少し更新する –