2012-11-08 4 views
1

En premier: Je sais que onDrag et onLongClick disponible uniquement sur API 11 (android 3.0) ou supérieur.implémente onLongClickListener, onDragListener sur android 2.x

classe implémente onDragListener et onLonglickListener. Cela fonctionne seulement à API 11 et plus. quand je veux mettre setonLongclickListener sur view J'utilise le code comme ceci:

..... 
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); 
} 

mais l'application est écrasé lorsque je tente de l'exécuter sur android 2.1.

@SuppressLint("NewApi") avant ma classe ne sauver ma situation.

Des idées?

+0

Vous pouvez soit supprimer la fonctionnalité de glisser sur les périphériques API anciens ou créer/port le système de glisser sur les anciennes versions. – Luksprog

+0

thx. Je résous mon problème. après 8 heures de réponse soyez ici)) –

Répondre

0

Je le résous;) remove implements méthode onDragListener et onLongClickListener de moi Classe. et modifier le code comme ceci:

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); 
     } 
    }); 
} 
Questions connexes