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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

Q&A

2回答

6414閲覧

ボタンをクリックしたら、クリックした回数が表示されるアプリでの問題

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

0グッド

0クリップ

投稿2016/09/04 12:55

編集2017/11/20 08:19

ボタンをクリックしたら、クリックした回数が表示されるアプリを作っています。
しかし、ImageButtonは押せるのですが、クリックした回数が何も表示されません。
MainActivityには

Java

1import android.support.v7.app.AppCompatActivity; 2import android.os.Bundle; 3import android.view.View; 4import android.widget.TextView; 5 6public class MainActivity extends AppCompatActivity { 7 8 @Override 9 protected void onCreate(Bundle savedInstanceState) { 10 super.onCreate(savedInstanceState); 11 setContentView(R.layout.activity_main); 12 13 findViewById(R.id.imageButton1).setOnClickListener(new View.OnClickListener() { 14 15 int mLike = 0; 16 17 @Override 18 public void onClick(View view) { 19 TextView textview = (TextView)findViewById(R.id.textView1); 20 textview.setText(Integer.toString(mLike++)); 21 22 } 23 }); 24 } 25} 26

と記載し、
activity_main.xmlには

Java

1import android.support.v7.app.AppCompatActivity; 2import android.os.Bundle; 3import android.view.View; 4import android.widget.TextView; 5 6public class MainActivity extends AppCompatActivity { 7 8 @Override 9 protected void onCreate(Bundle savedInstanceState) { 10 super.onCreate(savedInstanceState); 11 setContentView(R.layout.activity_main); 12 13 findViewById(R.id.imageButton1).setOnClickListener(new View.OnClickListener() { 14 15 int mLike = 0; 16 17 @Override 18 public void onClick(View view) { 19 TextView textview = (TextView)findViewById(R.id.textView1); 20 textview.setText(Integer.toString(mLike++)); 21 22 } 23 }); 24 } 25} 26

と記載し、
activity_main.xmlには

Java

1<?xml version="1.0" encoding="utf-8"?> 2<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:paddingBottom="@dimen/activity_vertical_margin" 7 android:paddingLeft="@dimen/activity_horizontal_margin" 8 android:paddingRight="@dimen/activity_horizontal_margin" 9 android:paddingTop="@dimen/activity_vertical_margin" 10 tools:context="xxxxxxxxx.button.MainActivity"> 11 12 <ImageButton 13 android:id="@+id/imageButton1" 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:background="@drawable/hert" /> 17 18 19 <TextView 20 android:id="@+id/textView1" 21 android:layout_width="wrap_content" 22 android:layout_height="wrap_content" 23 android:layout_toRightOf="@+id/imageButton1" 24 android:layout_marginLeft="5dip" 25 android:text="TextView" /> 26</RelativeLayout>> 27

と記載しました。
activity_main.xmlで表示されるようになっていないからの問題かなと思いました。しかし本の通りに作ったのでどこが悪いのかわかりません。

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

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

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

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

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

flied_onion

2016/09/04 14:23

最初の0は表示されますか?クリックは2回以上ためしましたか?試した場合は0のままでしたか?
退会済みユーザー

退会済みユーザー

2016/09/04 14:27

最初の0も表示されません。クリックは2回以上ためしましたが表示されませんでした。
swordone

2016/09/04 23:37

これコンパイル通ったんですか?OnClickListenerの匿名クラスでフィールド変数は宣言できないはずですが…
退会済みユーザー

退会済みユーザー

2016/09/05 01:11

コンパイルは通りました。 OnClickListenerの匿名クラスでフィールド変数は宣言できない→ではどのように書けば良いのでしょうか? protected void onCreate(Bundle savedInstanceState) {の中に書いているのは違うのですか?
guest

回答2

0

このコードを試しにコピペしてみましたが
ボタンクリックでカウントアップしました
「Build」「Clean Project」をしてからやり直してみるとか

コードは間違っていないようですね
TestApp

ImageButtonは押せるのですが

どうしてボタンが押せると言えるのでしょうか
ボタンが表示されているという意味であればわかります
Logをボタンクリックのタイミングでセットすれば
問題の切り分けができるでしょう

こういうふうにstep by stepで記述したほうが
最初は理解しやすとおもいますが

java

1public class MainActivity extends AppCompatActivity { 2 3 private TextView textview; 4 private int mLike = 0; 5 6 @Override 7 public void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_main); 10 11 ImageButton iButton = (ImageButton)findViewById(R.id.imageButton1); 12 textview = (TextView)findViewById(R.id.textView1); 13 14 iButton.setOnClickListener(new View.OnClickListener() { 15 @Override 16 public void onClick(View view) { 17 mLike++; 18 textview.setText(Integer.toString(mLike)); 19 20 } 21 }); 22 } 23} 24

投稿2016/09/05 06:14

aja

総合スコア3733

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

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

0

ImageButtonの「android:background="@drawable/hert"」がどういったものかわからないため、
これを削除した環境で確認したところ、動作しました。(5回クリック後の表示)
イメージ説明
(具体的には、onCreateメソッドの内のコード、ImageButtonとTextViewのコードを、AndroidStuioで新規作成した"Empty Activity"のプロジェクトにコピペして、上記設定を削除しただけ)

「activity_main.xmlで表示されるようになっていない」とは具体的にどのような状態でしょうか。
画面のスナップショットとその中のどこが想定(仕様)と異なるのか、教えていただけますか。

回数表示ですが、「mLike++」としているため、ボタンを押す前の数値を表示した後に数値をインクリメントすることになり、実際のクリック数から1回分少ない表示となります。
クリック数を表示したい場合には、「++mLike」として下さい。

投稿2016/09/05 06:12

dsuzuki

総合スコア1682

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問