有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

为什么这个代码不可访问,我该如何修复它

  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) 个答案

  1. # 1 楼答案

    返回后不能执行任何Java语句:

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

    只要有return语句就行了。(你有两次这样的经历)

  2. # 2 楼答案

    一般来说,Java中返回语句之后的语句将不会执行

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

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

    函数cleanUp()将执行

  3. # 3 楼答案

    因为你在break之前做了return (true),所以break永远不会被调用