代码运行不正常

时间:2015-03-27 07:33:19

标签: android

我有一个带有图像的布局,我希望当我点击它们时,它们会在屏幕上显示特定的消息。我的问题是,当我点击布局中的任何imageview时,我只得到我为第一个设置的消息。这是我的代码,你能告诉我问题是什么: earlir我在singletap的方法中尝试了这段代码: int id = 0 case 0:id = R.id.imageView1 但这不起作用请帮助

gestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {

          public boolean onSingleTapConfirmed(MotionEvent e){
              Toast.makeText(Creaacount_5.this, "single tap", Toast.LENGTH_SHORT).show();
              EditText b=(EditText)findViewById(R.id.editText1);
                 b.append("*");  

                 int id=0;
                 ImageView i=(ImageView) findViewById(R.id.imageView1);
                 id=i.getId();

                 int id1;
                 ImageView b1=(ImageView) findViewById(R.id.imageView2);
                 id1=b1.getId();
                 int id2;
                 ImageView c=(ImageView) findViewById(R.id.imageView2);
                 id2=c.getId();

                 int v=i.getId();

                     if(id==R.id.imageView1){

                      EditText t1 = (EditText)findViewById(R.id.editText1);
                       id=R.drawable.playing;
                      SpannableString ss = new SpannableString("abc");
                      ImageView r=(ImageView) findViewById(R.id.imageView1);
                        Drawable d = r.getDrawable();
                        d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
                        ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
                        ss.setSpan(span, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
                        t1.append(ss);
                       id=R.drawable.playing;
                       Toast.makeText(Creaacount_5.this,"play",Toast.LENGTH_SHORT).show();

                       SharedPreferences s1=getSharedPreferences(MyPreferences,MODE_PRIVATE);
                       SharedPreferences.Editor editor1=s1.edit();
                       editor1.putInt("play", R.drawable.playing);
                     }

2 个答案:

答案 0 :(得分:0)

您可以为每个图像使用这个简单的监听器,而不是做太多的事情:

ImageView img = (ImageView) findViewById(R.id.myImageId);
img.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
       // your code here
    }
});

另外,你可以使用android:onClick =" MyMethod"在XML中的每个图像视图中,然后在Java中创建一个方法:

public void MyMethod(View view){

    if(view.getId()==image1)
    // do something with that image
    else if(view.getId()==image2)
    // do something with that image
    .
    .
    . 
}

答案 1 :(得分:0)

以下是您如何尝试以上内容,只是概述:

boolean firstTouch = false;
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if(event.getAction() == event.ACTION_DOWN){
            if(firstTouch && (Helper.getCurrentTimeInMilliSeconds() - time) <= 300) {
                //do stuff here for double tap
                Log.e("** DOUBLE TAP**"," second tap ");
                firstTouch = false;

            } else {
                firstTouch = true;
                time = Helper.getCurrentTimeInMilliSeconds();
                Log.e("** SINGLE  TAP**"," First Tap time  "+time);
                return false;
            }
        }
        return true;
}

如果有帮助,请告诉我。