• 締切済み

Android Icon のイベント

ActionBarActivity が非推奨となり AppCompatActivity を継承して Activity を作ってみたのですが、Toolbar の Icon のイベントの取得方法が分かりません。 (ここで「Icon又はLogoの表示」を ご教授いただいたばかりなのですが) Toolbar の Icon のイベントの取得は そんなに難しくないだろうと思って、イロイロ検索しても全然ダメでした。 Toolbar の Icon のイベントの取得方法を ご存知の方が居ましたら ご教授下さいませm(_ _)m ◆ ThemeでActionBarを使用しない設定 『AndroidManifest.xml』内 <application android:theme="@style/AppTheme" ~ 『values/styles.xml』内 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> ◆「android.support.v7.widget.Toolbar」をsetSupportActionBarに設定 『layout/activity_main.xml』内 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" ~ <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="#9b7fff" app:theme="@style/ThemeOverlay.AppCompat.ActionBar" /> ◆ Iconを表示 『MainActivity.java』内 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); ActionBar oActionBar = getSupportActionBar( ); // oActionBar.setLogo(R.drawable.~); // Toolbar に LogoIcon を表示。 oActionBar.setIcon(R.drawable.~);// Toolbar に Icon を表示。

  • Java
  • 回答数1
  • ありがとう数0

みんなの回答

  • HNEX
  • ベストアンサー率62% (43/69)
回答No.1

getSupportActionBar().setDisplayHomeAsUpEnabled(true); でホームボタン(アイコン)を有効化して、onOptionsItemSelectedでホームボタン押下を受け取ります。 ただマテリアルデザインでは押せるのは矢印部分だけになるのかもしれません。 GmailやDropboxなんかを見るとアイコンを設置していないので、この辺はそういうデザインポリシーなのか… 私はまだマテリアルデザインでのデザイン設計に明るくないのでこの辺りはちょっと分からないです。 @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { Log.e("check", "home tap"); } return super.onOptionsItemSelected(item); }

関連するQ&A

  • Androidのアクションバー背景色を変更したい

    独学でAndroidアプリ開発を勉強しています。 AndroidStudioで開発を行っており、タブの背景色を変更したいと思い、 いろいろなサイトを参考にstyle.xmlを書き換えたりしているのですが、 一向に変更されず、行き詰まっています。 【res/values/style.xml】 <resources> <!-- Base application theme. --> <style name="AppTheme" parent="@style/Theme.AppCompat"> <item name="android:actionBarStyle">@style/MyActionBar</item> <!-- Customize your theme here. --> </style> <style name="MyActionBar" parent="Widget.AppCompat.Light.ActionBar"> <item name="android:background">@color/background_color</item> </style> </resources> 【res/values/color.xml】 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="background_color">#3ADBC6</color> </resources> 【AndroidManifest.xml】 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.hogehoge.tabtestapp" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 最終的には、アクションバー及びタブの背景色を変更したいのですが、 どこか間違っている部分があるでしょうか? どなたか、ご指導いただけるとありがたいです。 どうぞ宜しくお願い致します。

  • Widgetアプリの隙間

    androidのWidgetアプリを普通に作るとWidgetアプリとWidgetアプリの間にスペースが出来てしまします(添付画像の赤い菱形の部分) Widgetアプリ間のスペースを無くすには どのような設定にすればよろしいでしょうか。 『app_widget_info.xml』ファイル <?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialKeyguardLayout="@layout/app_widget" android:initialLayout="@layout/app_widget" android:minHeight="72dp" android:minWidth="294dp" android:previewImage="@drawable/example_appwidget_preview" android:resizeMode="horizontal|vertical" android:updatePeriodMillis="0" android:widgetCategory="home_screen"></appwidget-provider> 『app_widget.xml』ファイル <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/flame_style" android:layout_margin="0dp" android:padding="0dp"> <TextView android:id="@+id/appwidget_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="A Widget isn't launched." android:textColor="#ffffff" android:textSize="24dp" android:textStyle="bold" /> </RelativeLayout>

  • Androidアプリ・SDKでの実行時エラー

    初めてアンドロイドアプリの開発をしています(多言語のプログラミング経験はありますが、JAVAは初めてです)。Eclipseで開発を行っていますが、ボタンをクリックしたら画面遷移をする、という処理を追加したところ、Android SDKで実行した際に 「アプリ名(パッケージ名)が予期せず停止しました。やり直してください。」 と出て、トップの画面も表示されなくなってしまいました。なお、Eclipse上ではエラーなどが出ていません。原因が解らず困っています。何かわかる方がいらっしゃいましたらお教え下さい。 以下がソースになります。 ■トップのActivity--------------------- package jp.xxxxx.xxxxx; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //ボタンを定義 Button btn1 = (Button) findViewById(R.id.btn1); //クリックイベント btn1.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent intent = new Intent( getApplicationContext() , SubActivity.class); startActivity(intent); } }); } } ■トップ画面のXML--------------------- <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"> <ImageView android:id="@+id/topLogo" android:src="@drawable/logo" /> <LinearLayout android:id="@+id/linearLayout1"> <TextView android:id="@+id/btn1" android:text="@string/btn1text"></TextView> </LinearLayout> </LinearLayout> ■トップのAndroidManifest.xml--------------------- <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.xxxxx.xxxxx" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:label="@string/app_name" android:name="MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:label="@string/screenName2" android:name="SubActivity"> </activity> </application> </manifest> なお、Activityの「//ボタンを定義」以下をコメントアウトした際には画面は出てきます。何か初歩的な間違いをしているかもしれませんが、どうかよろしくお願いします。

    • ベストアンサー
    • Java
  • Androidの画面遷移ができません(その2)

    前回の質問の続きです. 今度はページXXXXXから3つのボタン(AAAAA,BBBBB,CCCCCと仮定)を画面上に表示させ,ボタンに記載された通りの各ページAAAAA,BBBBB,CCCCCに画面遷移しようと考えています. AAAAA,BBBBB,CCCCCにはそれぞれ異なった画像が表示されるようにプログラミングしてあるのですが,すべてのボタンを押してもページAAAAAに画面遷移してしまい困っています. おそらくAndroidManifest.xmlの定義が間違えているのではないかと思っているのですが,どこに原因があるのでしょうか?解答よろしくお願いします. 【AndroidManifest.xml】 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="sample.XXXXX" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="9" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".XXXXX" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="AAAAA"></activity> <activity android:name="BBBBB"></activity> <activity android:name="CCCCC"></activity> </application> </manifest>

  • Android開発についての初心者質問です。

    Android開発についての質問です。初心者でAndroidアプリを作っています。 初心者でAndroidアプリを作っています。 XMLからの実装をしたいのですが、 やり方がよく分かりません。 どなたかご教授頂けないでしょうか? よろしくお願いいたします。 やりたいことは、imageButtonをクリックしたら imageViewの画像部分が変わる。 imageButton1をクリック → imageView1が表示 imageButton2をクリック → imageView2が表示 デフォルトでは、imageView1が表示している状態 buttonのリスナーを登録するのが関の山で、ボタンクリック時の imageView表示切替処理等ちんぷんかんぷんです。 XMLはこういった感じで書いてます。 よろしくお願いいたします。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"> <FrameLayout android:id="@+id/frameLayout1" android:layout_height="wrap_content" android:foregroundGravity="center" android:layout_width="match_parent" > <ImageView android:layout_height="wrap_content" android:src="@drawable/icon" android:id="@+id/imageView1" android:layout_gravity="center" android:layout_width="match_parent" > </ImageView> </FrameLayout> <LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:layout_width="match_parent" > <ImageButton android:id="@+id/imageButton1" android:layout_height="wrap_content" android:src="@drawable/icon" android:layout_width="wrap_content" > </ImageButton> <ImageButton android:id="@+id/imageButton2" android:layout_width="wrap_content" android:src="@drawable/icon" android:layout_height="wrap_content" > </ImageButton> <ImageButton android:id="@+id/imageButton3" android:layout_width="wrap_content" android:src="@drawable/icon" android:layout_height="wrap_content" > </ImageButton> </LinearLayout> </LinearLayout>

  • すいません、Android初心者です

    最近EclipseでAndroidの勉強を始めたものです。 早速ですが、以下のソースを実行すると、何故か「[アプリ名](パッケージ名)が予期せず停止 しました。やり直してください」と出てきます・・・コメントの部分をコメントアウトするとうまく動作 するのですが、何故でしょうか?なお、ターゲットは2.3.3のものを利用しています。 /* +++ Javaソース +++ */ import android.app.Activity; import android.os.Bundle; import android.widget.Button; public class Android_Test01Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Button button1 = (Button) findViewById(R.id.button1); //button1.setText("button1"); setContentView(R.layout.main); } } /* +++ XMLソース +++ */ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

    • ベストアンサー
    • Java
  • [Android]エミュレータで動作しない原因

    こんにちは。java、Android開発初心者です。 「test001」というAndroidプロジェクト、「test001_01」というクラスを作成し、マニフェストを書き換えました。実行すると、再起動して繰り返しても The application has stopped unexpectedly. Please try again. と表示されます。 原因と対処方法を教えていただけませんか。 宜しくお願い致します。 ★test001 Manifest <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test001" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.test001.text001_01" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> ★test001_01.java package com.example.test001; import android.os.Bundle; import android.app.Activity; import android.graphics.Color; import android.view.Menu; import android.widget.Button; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.TextView; public class test001_01 extends Activity { private Button startButton, stopButton; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sub); startButton = new Button(this); startButton.setText("Button5"); stopButton = new Button(this); stopButton.setText("Button6"); textView = new TextView(this); textView.setText("TextView1"); textView.setBackgroundColor(Color.YELLOW); LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); LinearLayout linearLayout = new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL); linearLayout.setLayoutParams(linearLayoutParams); linearLayout.addView(startButton, linearLayoutParams); linearLayout.addView(stopButton, linearLayoutParams); linearLayout.addView(textView, linearLayoutParams); setContentView(linearLayout); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }

    • ベストアンサー
    • Java
  • Androidアプリに関して

    現在menu .xmlを作成しています。Webサイトを参考に作成してるのですが、 android:icon="@drawable/ic_menu_edit" これは階層はどうしたらよいのでしょうか? drawableというフォルダはプロジェクトの直下に置くのでしょうか? それともmenu .xml と同じ階層でしょうか?

    • ベストアンサー
    • Java
  • Android開発(Listview)について

    Androidアプリ開発における listviewについて質問させてください。 以下で、東京都,神奈川県,千葉県,埼玉県,茨城県,栃木県,群馬県と表示されています。 東京をクリックしたら、新宿、上野、秋葉原 千葉をクリックしたら、千葉、市川、船橋 といったように、さらに地域を絞っていきたいと考えています。 どのような方法で、実現できるか アドバイスして頂けると助かります。 ■searchActivity.java import android.app.Activity; import android.os.Bundle; import android.widget.*; public class searchActivity extends Activity { private ListView list; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); String[] arr = {"東京都","神奈川県","千葉県","埼玉県","茨城県","栃木県","群馬県"}; // コンポーネントの設定 list = (ListView)this.findViewById(R.id.list); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list, arr); list.setAdapter(adapter); } } ■main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textSize="20sp" android:background="#ffffff" > <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> ■list.xml <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textSize="20sp" android:paddingTop="50.0px" android:paddingLeft="20.0px" android:background="#ffffff" android:textColor="#000000" /> 以上、宜しくお願いいたします。

  • Android プログラム

    (ActionBarActivity が非推奨となり) AppCompatActivity を継承して Activity を作ってみたのですが、Toolbar の Logo(アイコン)が表示できません。 Toolbar の Logo(アイコン)の表示方法を ご存知の方が居ましたら ご教授下さいませm(_ _)m 開発環境は「Android Studio」、実行環境は「Galaxy S、Galaxy Note II」の2つの端末ですチェックしています アイコン・ファイルは「C:\Android\<sdk>\platforms\android-23\data\res」フォルダー内の「drawable-mdpi、drawable-hdpi」フォルダー内のファイルを使用しています。 > ActionBar oToolbar = getSupportActionBar( ); > oToolbar.setLogo(R.drawable.ic_menu_info_details); ↑両端末で表示できませんでした。 ちなみに「AndroidManifest.xml」内で「android:logo="@drawable/ic_menu_info_details"」と設定してもダメでした。

    • ベストアンサー
    • Java

専門家に質問してみよう