質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

2858閲覧

Androidアプリでボタンをタップしたらボタンの背景色が変わるようにしたい

l-_-l

総合スコア47

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2018/07/30 11:31

編集2018/07/30 13:00

Androidアプリをつくっています。
ボタンをタップしたら、ボタンの背景色が変わるようにしたいです。
一応調べてやってはみましたが、デバッグすると、アプリが落ちてしまいます。
(背景色に関する記述を消すと通常通りに動きます)

やり方が悪いのか、そもそも出来ないのか、ご教授頂きたいです。

###参考にしたサイト
http://y-anz-m.blogspot.com/2010/01/android-button.html
https://inon29.hateblo.jp/entry/2014/01/13/184153

###ちなみに
タップしたらText Viewの文字色を変えるようにすることはできるのですが...

XML

1Main.axml 2 3<?xml version="1.0" encoding="utf-8"?> 4<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 5 android:orientation="vertical" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent"> 8 <TextView 9 android:text="Text" 10 android:layout_width="match_parent" 11 android:layout_height="wrap_content" 12 android:id="@+id/textView2" 13 android:textColor="@drawable/text" 14 android:clickable="true" /> 15</LinearLayout>

XML

1drawable配下にtext.xmlを作成 2 3<?xml version="1.0" encoding="UTF-8" ?> 4<selector xmlns:android="http://schemas.android.com/apk/res/android"> 5<item android:state_focused="true" android:state_pressed="false" android:color="#5ea9ff" /> 6 <item android:state_focused="true" android:state_pressed="true" android:color="#5e3fff" /> 7 <item android:state_focused="false" android:state_pressed="true" android:color="#5e3f4b" /> 8 <item android:color="#ee7c43" /> 9</selector>

これでタップしたらTextの文字色が変わります

###これと同じような要領で、、、
タップしたらボタンの背景色を変えたいのですが、出来ないのでしょうか?
※ちなみにJava等で書けば出来ることは分かっているのですが、そんなとこまでJavaで書きたくないので...

環境

環境はVisual Studio Community for Macを使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

できるはずです!
すでに試されていると思いますが、selecterの使い方としては、

1、res/drawable配下にselecterを記述したxmlファイルを置く
2、1のxmlを@drawableでbuttonのandroid:backgroundに指定する

です。

気をつけることとしては、貼っていただいたリンクの二つ目にあるように、colorの指定の仕方がtextとbackgroundで違うことでしょうか?
(指定の仕方を間違えると実行時エラーになるなんて知りませんでした!)

投稿2018/07/30 12:26

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

l-_-l

2018/07/30 13:20

回答ありがとうございます!! 色々試してはいるのですが、どうやってもうまくいかなくて、、、 デバッグは出来るのですが、その後、ボタンが表示されないです。 アプリの名前だけが表示されてる感じです。 なので 1、res/drawable配下にselecterを記述したxmlファイル ↑この中身を詳しく教えていただけませんか? selecterを使うのは分かるのですが、その後がちょっと分かりません
退会済みユーザー

退会済みユーザー

2018/07/30 13:36

selecterの記述についてはここに投稿されているのがシンプルで分かりやすいですね↓ https://qiita.com/akidroid/items/e9c4789142f5c7bb2597 ところで、デバッグでボタンが表示されないとのことですが、 ボタン押下で消えてしまうのでしょうか? アプリ起動時から表示されていないのでしょうか?
l-_-l

2018/07/31 12:48

とりあえず、リンク先のソースをコピペしたら、やりたいことは出来ました!! 有難う御座います。 そこで、もう一つ質問なんですけど、<shape>ってないとこれまで通り、アプリ起動時からボタンが表示されないってことになってしまうんですが、 <shape android:shape="rectangle"> この一文って、今のとこ四角のままのボタンでいいのですが、、、 その場合は <shape> に短縮しても良いのでしょうか?
退会済みユーザー

退会済みユーザー

2018/07/31 13:12

><shape>に短縮しても良いのでしょうか? 大丈夫だったと思います。 アプリのデフォルトのレイアウト設定を変えていなければ、buttonの形状はrectangleがデフォルトになります。 androidのレイアウトファイルは奥が深いですね! 今回は私も勉強になりました。 ありがとうございました。
l-_-l

2018/08/01 13:14

こちらこそ、色々と有難うございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問