Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android代码适用于2.3,但不适用于4.0_Android_Version_Gesture_Gesture Recognition_Onfling - Fatal编程技术网

Android代码适用于2.3,但不适用于4.0

Android代码适用于2.3,但不适用于4.0,android,version,gesture,gesture-recognition,onfling,Android,Version,Gesture,Gesture Recognition,Onfling,我已经为API版本2.3.3编写了以下代码,并且在为此设计的模拟器上运行良好。我刚刚尝试在API 4.0上测试相同的代码,但我实现的用于控制应用程序的onFling手势不起作用。他们似乎连电话都没有 这是代码 package com.mystraldesign.memorable; import java.io.IOException; import android.app.Activity; import android.content.Context; import android.gra

我已经为API版本2.3.3编写了以下代码,并且在为此设计的模拟器上运行良好。我刚刚尝试在API 4.0上测试相同的代码,但我实现的用于控制应用程序的onFling手势不起作用。他们似乎连电话都没有

这是代码

package com.mystraldesign.memorable;

import java.io.IOException;
import android.app.Activity;
import android.content.Context;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.ClipboardManager;
import android.view.GestureDetector;
import android.view.GestureDetector.OnDoubleTapListener;
import android.view.MotionEvent;
import android.view.Window;
import android.widget.TextView;
import android.widget.Toast;
import com.mystraldesign.memorable.PassGen;

public class MemorableActivity extends Activity implements android.view.GestureDetector.OnGestureListener,OnDoubleTapListener  
{
    //Define text views
    private TextView textView1;
    private TextView textView2;
    private TextView textView3;
    private TextView textView4;

    //Previous password holder
    private String prevPass;

    //Gesture Detectors
    private GestureDetector gTap; 

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

        gTap  = new GestureDetector(this,(android.view.GestureDetector.OnGestureListener) this);

        //Remove title bar
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);




        //Define textView
        textView1 = (TextView) findViewById(R.id.textView1);
        textView2 = (TextView) findViewById(R.id.textView2);
        textView3 = (TextView) findViewById(R.id.textView3);
        textView4 = (TextView) findViewById(R.id.textView4);

        //Load font file
        Typeface type = Typeface.createFromAsset(getAssets(),"fonts/optima.ttf"); 

        //Set various textViews to font
        textView1.setTypeface(type);
        textView2.setTypeface(type);
        textView3.setTypeface(type);
        textView4.setTypeface(type);

        prevPass = "Memorable";

    }



    //Password call
    public void newPass()
    {
        //Store Return
        String retn = "";
        PassGen passWord = new PassGen();


        //Generate password
        try 
        {
            retn = passWord.passwordGen(this);
        } 
        catch (IOException e) 
        {

            //Message about Error
            Context context = getApplicationContext();
            CharSequence text = "Ooops Something Went Wrong!";
            int duration = Toast.LENGTH_SHORT;

            //Display message
            Toast toast = Toast.makeText(context, text, duration);
            toast.show();

            textView1.setText("Memorable");


            e.printStackTrace();
        }

        //Update prevPass
        prevPass = textView1.getText().toString();

        textView1.setText(retn);
    }









    /*--------------------------------------*/
    /*Additional gesture code below. */
    /* */
    /*J. Krawczyk 3/5/12*/
    /*--------------------------------------*/



    public boolean onTouchEvent(MotionEvent me){ 
        this.gTap.onTouchEvent(me);
       return super.onTouchEvent(me); 
      }



    public boolean onDown(MotionEvent e) {

      return false;
    }

    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
          float velocityY) 
  {

    String test = textView4.getText().toString();
    if ((velocityX == 0) && (velocityY > 0))
    {

        //Call new password generation or generate random if set
        if(test.equals("Memorable"))
        {
            newPass();
        }
        else if(test.equals("Random"))
        {
            //create new password method
            PassGen pass = new PassGen();

            //Set password
            textView1.setText(pass.randomPassword());
        }
    }
    else if((velocityX == 0) && (velocityY < 0))
    {
        textView1.setText(prevPass);
    }
    else if((velocityY == 0) && (velocityX > 0))
    {

        if(test.equals("Memorable"))
        {
            textView4.setText("Random");
        }
        else if(test.equals("Random"))
        {
            textView4.setText("Memorable");
        }   
    }


    return false;
  }


    public void onLongPress(MotionEvent e) 
    {

    }


    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
      float distanceY) {

     return false;
    }


    public void onShowPress(MotionEvent e) {

    }

    public boolean onSingleTapUp(MotionEvent e) {

     return false;
    }


    //Method to copy password - Depreciated
    public boolean onDoubleTap(MotionEvent e) {

     return false;
    }

    //Method to copy password
    public boolean onDoubleTapEvent(MotionEvent e) {

        //clipboard shite
        ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
        clipboard.setText(textView1.getText());

        //Message about coping
        Context context = getApplicationContext();
        CharSequence text = "Password has been copied to clipboard.";
        int duration = Toast.LENGTH_SHORT;

        //Display message
        Toast toast = Toast.makeText(context, text, duration);
        toast.show();

      return false;
    }



    public boolean onSingleTapConfirmed(MotionEvent e) {

     return false;
    }





}
编辑:


它现在可以在所有AVD(2.3.3-4.0)上运行和安装,但手势仍然只能在2.3.3上使用

1) 首先打开avd并等待其完全加载,然后运行apk

2) 更改
设置内容视图(电视)通过
this.setContentView(电视)

3) 关闭/删除您的其他旧AVD

4) 如果您随身携带设备,请对其进行测试



链接到reffer和

我给你一些建议

1) 首先打开avd并等待其完全加载,然后运行apk

2) 更改
设置内容视图(电视)通过
this.setContentView(电视)

3) 关闭/删除您的其他旧AVD

4) 如果您随身携带设备,请对其进行测试



链接到reffer和

未被识别的手势错误似乎是由于我使用速度来确定移动,但在Android 4.0上控制更精细,因此从未达到velocityX=0的条件。

未被识别的手势错误似乎是由于我使用速度来确定移动,但事实并非如此finer在Android 4.0上受控制,因此从未达到velocityX=0的条件。

您是否有错误,如果有,请也发布日志。@RobinHood没有错误,但发布了控制台输出,显示尽管存在并正在运行,但安装失败。我不知道,但似乎是您的问题。该链接不是关于在AVD+1上安装失败的,我希望有人能看到这一点。谁曾在4.0上工作过:)您是否有错误,如果有,请也发布您的日志猫。@RobinHood没有错误,但发布了控制台输出,显示尽管存在并正在运行,但安装失败。我不知道,但似乎是您的问题。这个链接不是关于在AVD+1上安装失败的,我希望有人能看到这一点。谁曾在4.0上工作过:)@Frankenstien尝试了所有这些,但没有任何区别。仍然无法在Android 4.0 AVD上安装s@Frankenstien尝试了所有这些,但没有区别。仍然无法在Android 4.0 AVD上安装
2012-05-03 05:57:06 - Emulator] 2012-05-03 05:57:06.471 emulator-arm[5445:1107] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
[2012-05-03 05:57:06 - Emulator] emulator: emulator window was out of view and was recentered
[2012-05-03 05:57:06 - Emulator] 
[2012-05-03 05:57:06 - Memorable] New emulator found: emulator-5554
[2012-05-03 05:57:06 - Memorable] Waiting for HOME ('android.process.acore') to be launched...
[2012-05-03 05:59:24 - Memorable] HOME is up on device 'emulator-5554'
[2012-05-03 05:59:24 - Memorable] Uploading Memorable.apk onto device 'emulator-5554'
[2012-05-03 05:59:26 - Memorable] Installing Memorable.apk...
[2012-05-03 06:01:34 - Memorable] Failed to install Memorable.apk on device 'emulator-5554!
[2012-05-03 06:01:34 - Memorable] (null)
[2012-05-03 06:01:34 - Memorable] Failed to install Memorable.apk on device 'emulator-5554': EOF
[2012-05-03 06:01:34 - Memorable] com.android.ddmlib.InstallException: EOF
[2012-05-03 06:01:34 - Memorable] Launch canceled!