1

そのため、このページのFling機能にジェスチャーを実装しようとしています。私はすでにジェスチャーを使用しましたが、何らかの理由でこのコードは実行されません。警告が表示されますが、修正方法がわかりません。onCreateで明確に確認できますが、コード内で可変ジェスチャが使用されていないことが示されています。ヘルプ?

コードは次のとおりです。

    package com.example.finisher;

    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;

    import android.app.Activity;
    import android.content.Intent;
    import android.content.res.AssetManager;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.GestureDetector;
    import android.view.GestureDetector.OnGestureListener;
    import android.view.MotionEvent;
    import android.widget.TextView;

    public class newclass extends Activity implements OnGestureListener{

private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gesture;

@Override 
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    TextView textView=new TextView(this);
    setContentView(textView);
    gesture = new GestureDetector(this);

    AssetManager assetManager = getAssets();
    InputStream inputStream =null;
    try {
        inputStream = assetManager.open("texts/myawesometext.txt");
        String text = loadTextFile(inputStream);
        textView.setText(text);
    } catch(IOException e){
        textView.setText("Couldn't Load the file.");
    }
    finally{
        if (inputStream!=null){
            try{
                inputStream.close();
            } catch(IOException e){
                textView.setText("Couldn't Close the File");
            }
        }
    }
}

private String loadTextFile(InputStream inputStream)throws IOException {
    ByteArrayOutputStream bytestream=new ByteArrayOutputStream();
    byte[] bytes= new byte[4096];
    int len=0;
    while((len= inputStream.read(bytes))>0)
        bytestream.write(bytes, 0, len);
    return new String(bytestream.toByteArray(),"UTF8");
}

@Override
public boolean onDown(MotionEvent arg0) {
    // TODO Auto-generated method stub
    return false;
}

@Override
public boolean onFling(MotionEvent start, MotionEvent finish, float xv,
        float yv) {
    Log.v("msg","msg");
    //Y motion only
    if(Math.abs(start.getRawY()-finish.getRawY())>SWIPE_MIN_DISTANCE
            &&Math.abs(yv)>SWIPE_THRESHOLD_VELOCITY){
        //y motion
        if (start.getRawY()>finish.getRawY()){
            //gesture down, page from top
            Intent myIntent = new Intent(newclass.this,MainActivity.class);
            myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            startActivity(myIntent);
            //animation done in pairs.Bringing top view in
            this.overridePendingTransition(R.anim.slide_bottom_in,
            R.anim.slide_bottom_out);  
        }
    }
return false;
}

@Override
public void onLongPress(MotionEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
        float arg3) {
    // TODO Auto-generated method stub
    return false;
}

@Override
public void onShowPress(MotionEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public boolean onSingleTapUp(MotionEvent arg0) {
    // TODO Auto-generated method stub
    return false;
}


    }
4

1 に答える 1

0

onCreate()で初期化されているように見えますが、使用されることはありません。この投稿を見てくださいグリッドレイアウトでのフリングジェスチャ検出

于 2013-01-24T20:50:52.847 に答える