Androidアプリ作成でonTouchメソッドが動作しない

このQ&Aのポイント
  • Androidアプリを作成中ですが、onTouchメソッドを実装してから実機で動作しなくなりました。
  • onTouchメソッドが正しく動作しない原因は、私の知識不足で理解できません。
  • ゲーム本体の作成に進めない状態で困っています。なぜこのコードで動作しないのか、ご教示いただけますか?
回答を見る
  • ベストアンサー

androidのアプリを作ってるんですが

import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.TextView; import android.content.Intent; import android.widget.ImageView; public class GameActivity extends Activity implements OnTouchListener{ private ImageView target; @Override protected void onCreate(Bundle savedInstanceState) { target = (ImageView)findViewById(R.id.imageView1); super.onCreate(savedInstanceState); setContentView(R.layout.activity_game); target.setOnTouchListener(this); } @Override public boolean onTouch(View v, MotionEvent motion) { switch(motion.getAction()) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_UP: break; } return true; } } これからゲーム本体を作っていこうとしてるんですが、onTouchメソッドを実装してから実機で動作しなくなり、先に進めず困っています。なぜこれで動作しないのか私の知識不足でよくわかりません。 回答お願いいたします。

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

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

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

onTouchメソッドを実装したことにより、もとからあった機能ではなく、 質問者の機能を使用するようになりました。 しかし、質問者の機能は何も動作しないonTouchメソッドです。 そのため動作しません。

daichi85s
質問者

お礼

遅れましたが回答ありがとうございます!! これで本体を作ることができます!!

関連するQ&A

  • Androidプログラミング アプリが停止する

    eclipseでボタンを押すと画像が表示されるアプリをつくろうとしていましたがボタンをを押すとポップアップで「~を停止します。」と表示されアプリが落ちてしまいます。 Ver4.0を使用しています。 package my.application.imageviewer; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; public class ImageViewer extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void showImage(View view) { ImageView imageView1 = (ImageView)findViewById(R.id.imageView1); imageView1.setImageResource(R.drawable.sample); } } プログラムにミスがあるのでしょうか? 宜しくお願い致します。

  • androidでアプリを作ろうとしてるのですが

    package com.example.test; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; public class InOutTest extends Activity { /** Called when the activity is first created. */ public TextView txtInfo; public EditText edtText; public Button outputbutton; public TextView txtResult; public TextView txtjudge; public String strInch; public String gettext; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //レイアウト作成 ここから LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); //レイアウトを見えるようにする //レイアウト作成 ここまで //GUI部品作成 ここから // ラベル txtInfo = new TextView(this); txtInfo.setText("check"); strInch = ("check"); layout.addView(txtInfo); // エディタ edtText = new EditText(this); layout.addView(edtText); // ボタン txtResult = new Button(this); txtResult.setText("same or difference"); layout.addView(txtResult); // 結果表示用ラベル txtjudge = new TextView(this); txtjudge.setText("check"); layout.addView(txtjudge); //GUI部品作成 ここまで txtResult.setOnClickListener(new OnClickListener(){ public void onClick(View v) { gettext = edtText.toString(); if (strInch==gettext){ txtjudge.setText("ok"); } }; }); }} 上のプログラムで strInchに入ってるデータとgettextで取得した文章を比較して同じなら txtjudgeにOKと引き渡して表示させたいのですがうまく動きません 何方かどうぞよろしくお願い致します

    • ベストアンサー
    • Java
  • 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; } } 長文で申し訳ありません。どうぞ宜しくお願い致します。

  • アンドロイドの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 inflateメソッドについて

    eclipseから「新規アプリケーション・プロジェクト」でプロジェクトを作成すると下記のコードが自動作成されます。 package com.example.hello; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @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; } } この中で、inflateメソッドにカーソルを当てると  void android.view.MenuInflater.inflate(int menuRes, Menu menu) が表示されるので、MenuInflaterクラスのメソッドだと確認できます。 しかし、import文でMenuInflaterクラスを定義していないのになぜ使用できるのでしょうか。

  • 自作アンドロイドアプリで足し算できない

    プログラミングの初心者ですがアンドロイドアプリを作ってみたいと思って練習しています。 練習用のアプリを作りエミュレーターで表示させたいのですがうまくいきません。 プログラムのどこかが間違っているのでしょうか? eclipse上ではエラーのマークなどは出ておらす、エミュレーターもちゃんと起動されますが、 アプリ起動直後にエミュレーター画面内に強制終了の画面が出て計算結果が表示されません。 OS Windows7 64bit --------------------------------- package in.andante.android.CalAppli; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class CalAppliActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); int i1; int i2; int i3; i1 = 1; i2 = 2; i3 = i1+i2; tv.setText(i3); setContentView(i3); } } よろしくお願いします

    • ベストアンサー
    • 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
  • アンドロイド JAVA 警告

    アンドロイド 初心者です package com.example.test; 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.View; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new testView(this)); } class testView extends View { public testView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { Paint paint = new Paint(); paint.setColor(Color.RED); canvas.drawLine(0, 0, 100, 50, paint); } } } このプラグラムで"Paint paint = new Paint();"のところで "Avoid object allocations during draw/layout operations (preallocate and reuse instead)" の警告が出ます、これを取る方法はありませんか。

    • ベストアンサー
    • Java
  • Android用ゲームを作っています。

    現在Androidゲームを作っているのですが、現在時間を取得し、時刻を表示したり、背景画像などを変えたりしたいのですがどのように取得し、表示させればいいのでしょうか?ソースコードは ・MainActivity.java package andorid.eample.game2; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.os.Bundle; import android.app.Activity; import android.widget.LinearLayout; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout l = new LinearLayout(this); setContentView(l); l.addView(new PView(this, null, 0)); } } ・PView.java package andorid.eample.game2; import android.annotation.SuppressLint;4 import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.TextView; import android.widget.Toast; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; import android.content.res.Resources; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.text.format.Time; import android.media.MediaPlayer; public class PView extends View{ Paint paint = new Paint(); Date date = new Date(); int flg = 0; int charaX =250; int charaY = 250; Resources res = this.getContext().getResources(); Bitmap bg = BitmapFactory.decodeResource(res, R.drawable.bg1); Bitmap chara = BitmapFactory.decodeResource(res, R.drawable.charan); Bitmap charaT = BitmapFactory.decodeResource(res, R.drawable.charat); Bitmap box= BitmapFactory.decodeResource(res, R.drawable.boxt); //音楽読み込み MediaPlayer se = MediaPlayer.create(getContext(),R.raw.ehehe); public PView(Context context,AttributeSet attrs,int defStyle) { super(context,attrs); // TODO 自動生成されたコンストラクター・スタブ } @SuppressLint("DrawAllocation") @Override protected void onDraw(Canvas c){ c.drawBitmap(bg,0,100,paint); if(flg == 0) { c.drawBitmap(chara,charaX,charaY,paint); } if(flg == 1) { c.drawBitmap(charaT,charaX,charaY,paint); c.drawBitmap(box,50,200,paint); } invalidate(); } public boolean onTouchEvent(MotionEvent me) { //タッチされた時 if(me.getAction() == MotionEvent.ACTION_DOWN) { if(me.getAction() == MotionEvent.ACTION_DOWN) { if(flg == 0) { flg = 1; se.start(); } else{ flg =0; } } } return false; } } このような感じになっています どうかアドバイスをお願いします。

    • ベストアンサー
    • Java
  • androidのオプションメニューについて

    androidアプリの作り方を勉強しているのですが、オプションメニューを実装しようと思いonCreateOptionMenuを書いたのですが、エミュレータでメニューボタンを押してもメニューが現れません。onCreateOptionMenu内でTextViewの文字を変更するようにしたのでが、TextViewは変更されず、そもそもonCreateOptionMenuがスルーされているようです。だれか、わかる方がいたらご教授お願いします。 以下ソースです。 シンプルにしたのですが問題がわかりません。 import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; public class Test04Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public boolean onCreateOptionMenu(Menu menu){ super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; } }

専門家に質問してみよう