• ベストアンサー
  • すぐに回答を!

Androidのボタン押下のイベント

初めてボタンを付けました。 きちんと動作しましたが、ボタンと関係のないアプリの名前の変更などをしていたら ボタンを押してもMainActivity.javaの public class MainActivity extends Activity implements OnClickListener { ・・・ public void onClick(View v) { Toast.makeText(this, "ボタンが押されました", Toast.LENGTH_LONG).show(); } がいつの間にか動作しなくなりました。 ボタンを押すとボタンは勝手に青くなって標準の音も出ますが、"ボタンが押されました"が表示されなくなりました。 どこを見直したらよいですか?

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数168
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2
  • shylock
  • ベストアンサー率73% (182/249)

ああ、setOnClickListenerで組み込んでるんですね。ならonclickプロパティは不要です。R.id.buttonはあってますね? そうなると、onClickが呼び出されているのかどうかをまず確認した方がいいでしょう。デバッグモードで実行してみてください。それと、実行時にエラーや警告など出てませんか。コンソールで確認してください。

共感・感謝の気持ちを伝えよう!

質問者からの補足

onClickが呼び出されているのかを確認したところ、呼ばれていることが分かりましたので ボタンにまつわるエラーではなさそうであるというところまで分かりました。

関連するQ&A

  • アンドロイド MainActivity.java

    アンドロイド(JAVA)でアプリを開発してます。 いくつかの画面が存在して、ある程度、動作するようになってるのですが、 MainActivity.javaというファイルがプロジェクト内に存在しません。 いろいろとやりたい事調べてると、MainActivity.javaというのが出てくるのですが MainActivity.javaというファイルは別になくても支障はないのでしょうか? 今、構成上Activityはいくつかあり、AndroidMainFest.xmlというファイルで Activityの設定などをしてます。 MainActivity.javaというのは、何か特別な動きをするファイルなのでしょうか? なくても問題なしでしょうか? 以上、素人質問かも知れませんが、よろしくお願いします。

  • Android JAVAへでの質問です

    (←※この部分!) の意味がわからないのでどなたか教えていただけないでしょうか? private EditText edit1; ですが、なぜ private がついているのでしょうか?なくても動きましたが何か意味があるのでしょうか? そしてどうして、この子はここにいるのでしょうか? Button btn1 と一緒に仲良くいてもいいんじゃないでしょうか? ================ import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.view.*; import android.view.View.OnClickListener; import android.widget.*; public class Test2Activity extends Activity { private EditText edit1;(←※この部分!) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); edit1 = (EditText)this.findViewById(R.id.EditText1); Button btn1 = (Button)this.findViewById(R.id.button1); btn1.setOnClickListener(new MyClickA()); } class MyClickA implements OnClickListener { public void onClick(View view){ Editable e = edit1.getText(); int n = Integer.parseInt(e.toString()); Toast toast = Toast.makeText(getApplicationContext(), "数値=" + n, Toast.LENGTH_SHORT); toast.show(); } } }

    • ベストアンサー
    • Java
  • Android PhoneGap WebSetti

    メソッド setDefaultZoom(WebSettings.ZoomDensity) は型 WebSettings で使用すべきではありません という警告がEclipseで出ます。 以下のソースの最後の行が警告の対象です。 適切な対応を行いたいのですが、どのようにするとよいでしようか? android:targetSdkVersion="19" とするとこの警告はでなくなりますが、いつかは19のようにバージョンを上げることになると思うので、今から既に19で進めていきたいです。 // AndroidManifest.xml <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> // MainActivity.java public class MainActivity extends DroidGap { @Override public void onCreate(Bundle b) {    super.onCreate(b);    ・・・    settings.setDefaultZoom(ZoomDensity.MEDIUM);

    • ベストアンサー
    • Java

その他の回答 (1)

  • 回答No.1
  • shylock
  • ベストアンサー率73% (182/249)

とりあえず、ボタンのonclickプロパティにonClickメソッドが設定されているか確認してみては。何かの拍子に設定が消えているとかいうことかも知れないので。

共感・感謝の気持ちを伝えよう!

質問者からの補足

Activity_main.xmlをグラフィカル・レイアウトで表示させ、GUIのプレビューのような表示上のボタンをクリックすると アウトラインのタブでプロパティがたくさん表示され、   View    └ On Click を見つけました。 このOn Clickの値は空欄です。 最初に"ボタンが押されました"が表示されていた時も、このOn Clckは空欄だったと思います。 ボタンの設置はGUIで、フォーム・ウィジェットからButtonを選びました。 素人なのでリスナの登録もGUIで行いたかったのですが分からなかったので MainActivity.javaに直接書きました。 ボタンなのにViewでよいのか心配なのですがソースは以下です。 package com.example.test1; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener {  @Override  protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);   View v = findViewById(R.id.button);   v.setOnClickListener(this);  }  public void onClick(View v) {   Toast.makeText(this, "ボタンが押されました", Toast.LENGTH_LONG).show();  } }

関連するQ&A

  • eclipseでのコード補完

    public class HelloWorldActivity extends Activity implements View.OnClickListener { 上記のコードで "implements View"と入力した直後に、コード補完(Ctrl + Space)しても android.view.Viewクラスが補完候補に現れません。 何故、補完候補に表示されないのでしょうか? また、コード補完を使って、"View.OnClickListener"を素早く入力するにはどうしたらよいのでしょうか? Eclipse Indigo(3.7.1) JDK 1.6.0_29 Android SDK 3.2 よろしくお願いします。

    • ベストアンサー
    • Java
  • android開発 map コンテナのエラー

    今学校でandroid開発の課題が出ているのですが、エラーの原因が分かりません。 javaの勉強はしていますが、android開発は初めてです。 http://note.chiebukuro.yahoo.co.jp/detail/n237584 上のURLのmapを作成しているのですが、MainActivity.javaでエラーが検出されました。 public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()) .commit(); } } ・ ・ ・ 上のcontainerでエラーとなりました。どうしたらエラーがなくなるのか教えてください。

  • Android/OnClickListener

    Android/View.OnClickListenerインターフェイス インターフェイスについて教えてください。 下記ページで、「View.OnClickListenerインターフェイス」をimplementsする必要性が理解できません。 ▽Androidアプリにおけるユーザインタフェースの基本処理(3/4):CodeZine   http://codezine.jp/article/detail/6026?p=3 最終的に、ViewクラスonClickメソッドを呼び出すのであれば、 Viewクラスを継承すれば良いと思うのですが、 どうして、「View.OnClickListenerインターフェイス」をimplementsするのでしょうか? ボタンのオブジェクトにリスナーを登録する際、 「リスナーイベントに応じて呼び出されるメソッド」は少ないほうが良い、から? それとも、ViewクラスsetOnClickListenerメソッドの引数に書いている内容に関係しているのでしょうか? ▽View | Android Developers http://developer.android.com/reference/android/view/View.html#setOnClickListener(android.view.View.OnClickListener) >public void setOnClickListener (View.OnClickListener l) この引数(View.OnClickListener l)の意味を教えてください。 View.OnClickListener型しか受け付けない? l って何ですか?

    • ベストアンサー
    • Java
  • アンドロイドのJAVAの基本(文法)について

    アンドロイドの開発を目指して基本から勉強していますが、 本を買っても何のことかさっぱりで困っています。 基本中の基本で恐縮ですが、習熟している方、お助けください。 1.下記はどういう意味でしょうか? public class DBSampleA extends Activity implements View.OnClickListener{ ※implementsの意味を調べても何のことかさっぱりです・・ 2.下記の@Override とは何を意味するのでしょうか? @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); 3.また、onCreate(Bundle savedInstanceState) の中の、 Bundle savedInstanceState はどういう位置付けなのでしょうか?

    • ベストアンサー
    • Java
  • Android R.color

    「values/colors.xml」内に「<color name="orange">#ffa500</color>」とか設定して、プログラムから下記みたいな感じで取得しようとするとエラーになってしまいます。 プログラムからリソースのカラーの値を取得する方法を ご存知の方が いらっしゃいましたら ご教授下さいm(_ _)m &#65374; import android.graphics.Color; &#65374; public class MainActivity extends AppCompatActivity { &#65374; int c = Color.parseColor(getString(R.color.orange)); &#65374;

  • androidアプリ、Listviewについて

    現在、Aというクラスで定義されているボタンを押した 際に、 まずはボタンが押された旨をトーストし、その後 Bというクラスで定義されているListViewを表示させた いと考えています。 この時、Aのクラスにはなんと記述したら良いのでしょ うか? Aクラスに public void onClick() { //中略 public void run() { //入力した文字をトースト出力する Toast.makeText( //中略 ) class B extends ListActivity { } } のように記載しているのですが、トーストまでしか 正常に動作しません。 どなたかご存知の方がいらっしゃいましたらよろしくお 願いします。

  • [android]画面に円が表示されない原因

    こんにちは。 以下のサイトを参考に白い画面に赤い円を表示させたいのですが、実際にはエミュレータ上に表示されません。 logcatのエラーもありません。原因と対処方法をご教授ください。 eclipseのバージョンは以下のとおりです。 Eclipse Platform 3.8.0.v20120607-071945-9gF7jI7nG5qByXMVdkhRMWBQlF4PnDCLybDCPQ http://www.hakkaku.net/articles/20091127-594 ★MainActivity.java package com.example.test001_001; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.Menu; import android.view.View; public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 描画クラスを設定 setContentView(new TestDrawView(getApplication())); } /* 描画用クラス */ class TestDrawView extends View { public TestDrawView(Context c) { super(c); } } // このメソッドで描画を行う protected void onDraw(Canvas c) { // --------- (*1)Check!! c.drawColor(Color.WHITE); Paint p = new Paint(); p.setColor(Color.RED); p.setStyle(Paint.Style.FILL); c.drawCircle(100, 100, 50, p); } }

  • androidアプリ開発について

    androidアプリ開発初心者です。 やりたいことは、 スタートボタンを押して、自分のお気に入りのページに飛び、(例えばオークションなど)サイトを表示させ、何分間ごとに更新できるループ処理?などができればいいなと考えています。 スタートボタンを押してサイトを表示するまでは何とか作れたのですが、それ以降をどのように作ったらいいのか分かりません。 初心者的な質問で申し訳ないのですが、どのように書いたらよいのか教えてください。 コードはこのようになっています。 <<main.xml>> <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="192dp" android:layout_height="wrap_content" android:text="スタート" /> </LinearLayout> <<MainActivity.java>> import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { Button btn =null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn=(Button)findViewById(R.id.button1); btn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ Uri uri =Uri.parse("http://"); Intent intent=new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(uri); startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 長文で申し訳ありません。どうぞ宜しくお願い致します。

  • クリックして画像を変え、一定時間経過後もとに戻す

    androidアプリを作成している初心者です。 画像をクリックすると画像が変わるようになるようにしたいと思ってます。 画像を変えるところまではできたのですが、 一定時間経過後にもとに戻すにはどうしたらいいかがわかりません。 以下、ソースコード。 public class MainActivity extends Activity { ImageView iv; Bitmap bmp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.HORIZONTAL); ll.setGravity(Gravity.CENTER); setContentView(ll); //画像表示 iv = new ImageView(this); bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ikari); iv.setImageBitmap(bmp); ll.addView(iv); //画像をクリックした時に関数を呼び出す iv.setOnClickListener(new img_ac()); } //画像を変える class img_ac implements OnClickListener { public void onClick(View v) { ImageView tmp = (ImageView) v; tmp.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)); } } } 一定時間経過後に元の画像に戻すには、どのようにしたら良いのでしょうか。

    • ベストアンサー
    • Java
  • nullpointexceptionについて

    プログラミング初心者です。 エラーが全くわかりません。 ボタンを押すと、リストビューに移動するというものなんですが、ボタンを押すとnullpointexceptionが出ます。 最後の、et.setText(str);でエラーになっているようなんですが、 お分かりになる方いらっしゃいますか・・・? よろしくお願いいたします。 public class MainActivity extends Activity { EditText text_naiyou =null; Button save=null; Button buck=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); save=(Button)findViewById(R.id.save); buck=(Button)findViewById(R.id.buck); text_naiyou=(EditText)findViewById(R.id.text_naiyou); save.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { EditText et = (EditText)findViewById(R.id.text_naiyou); String str = et.getText().toString(); Intent intent = new Intent(); intent.setClass(getApplicationContext(), ListActivity.class); String pkg = getPackageName(); intent.putExtra(pkg + ".input",str); startActivity(intent); public class ListActivity extends Activity { EditText text_naiyou =null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); Intent intent = getIntent(); String pkg = getPackageName(); String str = intent.getStringExtra(pkg + ".input"); EditText et = (EditText)findViewById(R.id.text_naiyou); et.setText(str);