拖放开关案例,无法访问代码?

时间:2013-05-21 12:23:01

标签: java android switch-statement

为什么此代码无法访问,如何解决?

  public void draggingEvent() {
  image15(); 
  final int thisLetter = currentLetter;
  mImageView15.getDrawable();

  mImageView15 = (ImageView) findViewById(R.id.imageView15);
  mImageView15.setOnDragListener(new OnDragListener() {


    public boolean onDrag(View v, DragEvent de) {
        // TODO Auto-generated method stub
        final int action = de.getAction();
        switch(action) {

        case DragEvent.ACTION_DRAG_STARTED:

            if (de.getClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
            v.invalidate();


            return (true);
            }


            break;

        case DragEvent.ACTION_DRAG_ENTERED:
            v.invalidate();
            return (true);

            break;  //un reachable here
        case DragEvent.ACTION_DRAG_LOCATION:
            //ignore even for now
            if (de.getX() == 250 && de.getY() == 195) {
                mImageView17.setImageResource(thisLetter);
                v.invalidate();
            return (true);
            }
            if (de.getX() == 300 && de.getY() == 195) {
                mImageView17.setImageResource(thisLetter);
            return (true);
            } 
            break;// here
        case DragEvent.ACTION_DRAG_EXITED:
            de.getResult();
            break; //here
        case DragEvent.ACTION_DROP:
            ClipData.Item item = de.getClipData().getItemAt(thisLetter);
            v.invalidate();
            return (true);

            break; // here
        case DragEvent.ACTION_DRAG_ENDED:
            v.invalidate();

            if (de.getResult()) {
                Log.e("it worked", "worked");
            } else {
                Log.e("failed", "sorry failed drag and drop");
            return (true);
            }
            break; //here

            default: 
                Log.e("Drag drop", "Failed to find area");
            break; // and here



    };
    return false;
    };

  });

3 个答案:

答案 0 :(得分:2)

返回后,您无法执行任何Java语句:

return (true);
break;  //un reachable here

只有return声明。 (你有两次这样的事件)

答案 1 :(得分:2)

通常,Java中的return语句后的语句将不会被执行。

几乎正确;有一个重要的例外有助于程序稳定性,即finally块。例如

try {
    doSomething();
    return;
} finally {
    cleanUp();
}

将执行<{1}} 函数

答案 2 :(得分:1)

因为您在return (true)之前break永远不会调用break

相关问题