0

さて、私は簡単なストップウォッチを作成しています。画面の任意の場所を押すと、時刻が開始されますが、今のところ、出力に何かを印刷するだけです。私は多くの例を見てきました、私は答えのある他の多くの質問を見ました、それらのどれもうまくいきませんでした。これは私がこれまでに持っているものです(onTouchはその下部にあります):

package com.timeofcubeeliteDYLANFERRIS.cubetimerelite;


import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends Activity {
final private int RANDOM_DIALOG = 0;
String message;

@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, menu);
    return true;
}

public boolean onOptionsItemSelected(MenuItem item){
    switch(item.getItemId())
    {
    case R.id.settingsMenu: 
        Intent intent = new Intent (MainActivity.this, MainPreferenceActivity.class);
        startActivity(intent);
        break;
    case R.id.cubetypeMenu:
        Intent cubeTypeIntent = new Intent (MainActivity.this, PreferenceCubeType.class);
        startActivity(cubeTypeIntent);


        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        String value = preferences.getString("test", "String not found");
        System.out.println(value);
        Log.d("Cubetimer:", value);
        break;
    default:
    }
    return super.onOptionsItemSelected(item);
}






public boolean onTouch(View view, MotionEvent event){
    int action = event.getAction();
    switch(action){
    case MotionEvent.ACTION_DOWN: Log.d(message, "down"); break;
    case MotionEvent.ACTION_MOVE: Log.d(message, "move"); break;
    case MotionEvent.ACTION_UP: Log.d(message, "up"); break;

    }
    System.out.println("Oh my oh MY...");
    return true;
}

}

では、タッチイベントをどのように修正しますか?(ACTION_UP、DOWN、MOVEを保持する必要はありません。これは、私がテストしようとしていたものです)

4

1 に答える 1

1

あなたは正しいイベントを無効にしていないと思います。そのため、メソッドは呼び出されません。

onTouchEvent代わりに、次のように使用する必要があります。

@Override
public boolean onTouchEvent(MotionEvent event)
{
    //Do your stuff
    return super.onTouchEvent(event);
}
于 2013-03-24T18:33:31.473 に答える