1

最初:私はそれを知ってonDragおりonLongClick、API 11(android 3.0)以降でのみ利用可能です。

クラスは実装onDragListeneronLonglickListenerます。API11以降でのみ機能します。setonLongclickListener設定したいときは、view次のようなコードを使用します。

 .....
 protected static final int sdk = android.os.Build.VERSION.SDK_INT;
 ......
 ......
 if(sdk >= 11){ 
     for (int i = 0; i < LlayoutFront.getChildCount(); i++){ 
         LlayoutFront.getChildAt(i).setOnDragListener(this);
     }   
     LlayoutDeleteArea.setOnDragListener(this);
     LlayoutSetupArea.setOnDragListener(this);
     findViewById(R.id.RelativeLMain).setOnDragListener(this);
 }

しかし、で実行しようとするとアプリがクラッシュしましたandroid 2.1

@SuppressLint("NewApi")私のクラスが私の状況を救わない前に。

何か案は?

4

1 に答える 1

0

私はそれを解決します;)実装メソッドonDragListenerを削除しonLongClickListener、私からクラスを削除します。次のようにコードを変更します。

if(sdk >= 11){ 
    for (int i = 0; i < LlayoutFront.getChildCount(); i++){
        LlayoutFront.getChildAt(i).setOnDragListener(new OnDragListener() {                 
            public boolean onDrag(View v, DragEvent event) {
                return myOnDrag(v, event);
            }
        });
    }
    LlayoutDeleteArea.setOnDragListener(new OnDragListener() {                  
        public boolean onDrag(View v, DragEvent event) {
            return myOnDrag(v, event);
        }
    });
    LlayoutSetupArea.setOnDragListener(new OnDragListener() {                   
        public boolean onDrag(View v, DragEvent event) {
            return myOnDrag(v, event);
        }
    });
    findViewById(R.id.RelativeLMain).setOnDragListener(new OnDragListener() {                   
        public boolean onDrag(View v, DragEvent event) {
            return myOnDrag(v, event);
        }
    });
}
于 2012-11-09T08:05:49.397 に答える