2013-07-14 13 views
10

私は、MainActivityとSettingsActivityの2つのアクティビティを持つアプリを持っています。 MainActivityには、1つの設定メニュー項目を持つメニューがあります。このメニュー項目をクリックすると、インテントとともにSettingsActivityが起動されます。アクティビティの起動後、左上隅の戻るボタンをクリックしても何も起こりません。私はインテントを使ってアクティビティを開始してから、アクティビティスタックは自動的に管理されると想定しました。私はMainActivityに戻りたいです。私はこの仮定で間違っていますか?Androidバックボタンが以前のアクティビティに戻ることはありません

は内部

public boolean onMenuItemSelected(int featureId, MenuItem item) { 
    int itemID = item.getItemId(); 

    if(itemID == R.id.settings) { 
     Intent intent = new Intent(this, SettingsActivity.class); 
     startActivity(intent); 
    } 

    return true; 
} 

SettingsActivity

public class SettingsActivity extends PreferenceActivity { 

    public static final String TEST = "test"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.preferences); 
    } 
} 
+0

あなたが追加してください可能性があなたのお役に立てば幸いです2つの活動の完全なコード? –

+0

アクションバーのアプリアイコンをクリックしても何も起こらないということですか? – patheticpat

+0

マニフェストも追加できますか?アクティビティのタグだけを追加することができます – Nativ

答えて

34

をMainActivity.onMenuItemSelectedごSettingsActivityあなたが戻って行くためのアクションバーの左上隅の[戻る]ボタンを有効にするonOptionsItemSelectedをオーバーライドする必要があります。それは、それがクリックで何をする必要があるかをそれ自体では知りません。ケースandroid.R.id.homeの中にはfinish()と電話することができます。これで現在の活動が終了し、開始したMainActivityに戻ります。例えば:setDisplayHomeAsUpEnabled()

It is to show the user that selecting home will return one level up rather than to the top level of the app.

のドキュメントを1として

getActionBar().setDisplayHomeAsUpEnabled(true); 

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case android.R.id.home: 
      this.finish(); 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

だけで完全にするために、ホームボタンを有効にするために、あなたはあなたのonCreate()SettingsActivityの中に以下を追加します

これが役立つことを願っています。

+0

SettingsActivityのonOptionsItemSelectedにthis.finish()が表示されません。 – nurettin

+0

これは私がコンテキストメニューでナビゲートしたアクティビティで上ボタンが機能していなかった私の場合には完全に機能しました。 – Kat

1

ちょうどあなたのOnCreate methord

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setHomeButtonEnabled(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(); 

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

    return super.onOptionsItemSelected(item); 
} 

はそれが

関連する問題