多くのアプリ(カレンダー、ドライブ、Playストア)では、ボタンをタップして新しいアクティビティを入力すると、タイトルバーのアイコンが戻るボタンに変わりますが、私が作成しているアプリでは、それは行われません。そのアイコンで前の画面に戻るにはどうすればよいですか?
26 に答える
最終的に、アクションバー/ツールバーに戻るボタンを適切に追加することができました
@Override
public void onCreate(Bundle savedInstanceState) {
...
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
public boolean onCreateOptionsMenu(Menu menu) {
return true;
}
あなたの活動が活動を拡張する場合
public class YourActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xxx);
getActionBar().setHomeButtonEnabled(true);
[...]
}
[...]
}
アクションが AppCompatActivity を拡張する場合
public class YourActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xxx);
getSupportActionBar().setHomeButtonEnabled(true);
[...]
}
[...]
}
これ以上何もする必要はありません。追加アクションを参照してください
[オプション] 親アクティビティを明示的に定義するには、Manifest.xml を次のように変更します。
<application ... >
...
<!-- The main/home activity (it has no parent activity) -->
<activity
android:name="com.example.myfirstapp.MainActivity" ...>
...
</activity>
<!-- A child of the main activity -->
<activity
android:name="com.example.myfirstapp.YourActivity "
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
</application>
親アクティビティの指定を参照してください
まず onCreate 関数に次の行を追加します
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
次に、コードに次の関数を追加します。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
グーグルがここで説明しているように、最も簡単な方法とベストプラクティス:
1. childActivity の親を次の場所に追加しますAndroidManifest.xml
。
<activity
android:name=".ChildActivity"
android:parentActivityName=".ParentActivity" >
</activity>
2. childActivity で戻るボタンをアクティブにします。
myActionOrActionSupportBar.setDisplayHomeAsUpEnabled(true);
私のために働いた、私はそれがあなたにとってもうまくいくことを願っています.
Android Studio で 5.1 の新しいサポート ライブラリを使用している場合は、代わりにこれを AppCompatActivity で使用できます。
ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeAsUpIndicator(R.mipmap.ic_arrow_back_white_24dp);
actionBar.setDisplayShowHomeEnabled(true);
乾杯。
2020 年に行う必要があること:
(MainActivity に戻りたいことを考慮して)
protected void onCreate(Bundle savedInstanceState){
...
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
public boolean onOptionsItemSelected(MenuItem item) {
Intent myIntent = new Intent(getApplicationContext(), MainActivity.class);
startActivityForResult(myIntent, 0);
return true;
}
以下のコードをマニフェスト ファイルに追加する必要があります。戻る矢印機能を追加するアクティビティを検索します。見つかった場合は問題ないか、アクティビティを作成します
<activity android:name=".SearchActivity">
</activity>
次に、間に次の 3 行のコードを追加します。
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.raqib.instadate.MainActivity" />
このコードを onCreate(); に追加することを忘れないでください。戻る矢印が必要な特定のアクティビティの方法。
Toolbar toolbar = (Toolbar) findViewById(R.id.searchToolbar);
setSupportActionBar(toolbar);
try{
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}catch(NullPointerException e){
Log.e("SearchActivity Toolbar", "You have got a NULL POINTER EXCEPTION");
}
これが私が問題を解決した方法です。ありがとう。
他の回答では、Toolbar
ウィジェットの XML でこれを設定することもできます。
app:navigationIcon="?attr/homeAsUpIndicator"
例えば:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:navigationIcon="?attr/homeAsUpIndicator"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/title_activity_acoustic_progress" />
ActionBar を使用している場合は、このドキュメントを読みたいと思うでしょう http://developer.android.com/reference/android/app/ActionBar.html#setDisplayHomeAsUpEnabled(boolean)
次に、メソッド onOptionsItemSelected(MenuItem) を上書きし、android.R.id.home イベントが入ってくるのを探す必要があります。その後、ユーザーがアクションバーの戻るボタンをクリックしたことがわかります。
アプリ マニフェストで親アクティビティを指定することにより、コードなしで実行することもできます。アクティビティ A に移動するアクティビティ B に戻るボタンが必要な場合は、マニフェストでアクティビティ B の親としてアクティビティ A を追加するだけです。
onBackPressed()
onClick リスナーを単純に配置することもできます。これにより、ボタンが Android アプリのデフォルトの「バックアップ/アップ」ボタンのように機能します。
Toolbar toolbar=findViewById(R.id.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
if (getSupportActionBar()==null){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==android.R.id.home)
finish();
return super.onOptionsItemSelected(item);
}