アクションバーのホームボタンにカスタムonClickListener
を実装するにはどうすればよいですか?
既にgetSupportActionBar().setDisplayHomeAsUpEnabled(true);
を実行しましたが、ホームボタンがクリックされた場合に備えて、ユーザーを特定のアクティビティにリダイレクトしたいと考えています。
私が試した:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case Android.R.id.home:
item.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Intent i = new Intent();
i.setClass(BestemmingActivity.this, StartActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
return true;
}
});
default:
return super.onOptionsItemSelected(item);
}
}
ただし、onMenuItemClick
には入りません。
基本的に、 this link のように行われますが、それでもリスナーには入りません。
修正済み:setOnMenuItemClickListener
を使用する必要はありません。ボタンを押すだけで、インテントを通じてアクティビティを作成して起動します。
あなたの助けをありがとう!
supportActionBar.setHomeButtonEnabled(true);
を設定した後、 actionBarSherlock を使用します
onMenuItemSelectedメソッドをオーバーライドできます。
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case Android.R.id.home:
toggle();
// Toast.makeText(this, "home pressed", Toast.LENGTH_LONG).show();
break;
}
return true;
}
私はこの仕事があなたのために~~~幸運を願っています
他の誰かがソリューションを必要とする場合
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == Android.R.id.home) {
onBackPressed(); return true;
}
return super.onOptionsItemSelected(item);
}
次のコードが動作するアクションバーを指定したシステムを使用する場合
getActionBar().setHomeButtonEnabled(true);
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case Android.R.id.home:
//do your action here.
break;
}
return true;
}
ICSで実行する場合は、ホームアクションを明示的に有効にする必要があります。 ドキュメント から:
注:アイコンを使用してホームアクティビティに移動する場合、Android 4.0(APIレベル14)で始まることに注意してください。setHomeButtonEnabled(true)を呼び出して、アクションアイテムとしてアイコンを明示的に有効にする必要があります(以前のバージョンでは、アイコンはデフォルトでアクション項目として有効にされていました)。
OnClickListenerのアクションバーをカスタマイズする最良の方法は、onSupportNavigateUp()です。
このコードは役に立ちます コードを支援するためのリンク
起こっていることの半分の部分で答えます。 manifest.xmlシステムの親アクティビティセットが親アクティビティに移動するときに、onOptionsItemSelected
がhomeAsUp
ボタンを制御しない場合。アクティビティタグで次のように使用します。
<activity ... >
<meta-data
Android:name="Android.support.PARENT_ACTIVITY"
Android:value="com.activities.MainActivity" />
</activity>