アクションバーに戻るボタンを追加しようとしています。
ビューを次のように表示します。
アクションバーの左側に戻るボタンを追加したい。
このコードを追加しました
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
しかし、うまくいきません。
どうすればこれを修正できますか?
アクションバーに戻るボタンを追加しようとしています。
ビューを次のように表示します。
アクションバーの左側に戻るボタンを追加したい。
このコードを追加しました
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
しかし、うまくいきません。
どうすればこれを修正できますか?
設定後
actionBar.setHomeButtonEnabled(true);
次のコードを追加します。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// app icon in action bar clicked; goto parent activity.
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
追加
actionBar.setHomeButtonEnabled(true);
そして、次を追加します
@Override
public boolean onOptionsItemSelected(MenuItem menuItem)
{
switch (menuItem.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
default:
return super.onOptionsItemSelected(menuItem);
}
}
naXaが提案したitemId
ように、アクション バーに複数のボタンがある場合に正しく機能するように、にチェックを追加しました。
これは私のために働いた:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_your_activity);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// ... other stuff
}
@Override
public boolean onSupportNavigateUp(){
finish();
return true;
}
SupportActionBar で戻るボタンを使用すると、onSupportNavigateUp() メソッドが呼び出されます。
これには 2 つの方法があります。
オプション 1: Android マニフェストを更新する 設定アクティビティが常に同じアクティビティから呼び出される場合は、Android マニフェストで関係を作成できます。Android では、ActionBar に「戻る」ボタンが自動的に表示されます。
<activity
android:name=".SettingsActivity"
android:label="Setting Activity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.example.MainActivity" />
</activity>
オプション 2: ActionBar の設定を変更する どのアクティビティが設定アクティビティを呼び出すかわからない場合は、次のように作成できます。ActionBarActivity を拡張するアクティビティで最初に (@imports が探している互換性のレベルと一致していることを確認してください)。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings_test);
ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
}
次に、「戻るボタン」の押下を検出し、Android に現在開いているアクティビティを閉じるように指示します。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// app icon in action bar clicked; goto parent activity.
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
それはそれを行う必要があります!
まずこれを使用します:
ActionBar bar = getSupportActionBar();
bar.setDisplayHomeAsUpEnabled(true);
onOptionsItemSelected
次に、メソッドでボタンクリックの動作を設定します
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
メソッドで確認menuItem.getItemId()
する必要がありますandroid.R.id.home
onOptionsItemSelected
これを使用して戻るボタンを表示し、前のアクティビティに移動します。
final ActionBar actionBar = getSupportActionBar();
assert actionBar != null;
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeAsUpIndicator(R.drawable.back_dark);
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
default:
return super.onOptionsItemSelected(item);
}
}