2010-03-03 6 views
2

tout en montrant la barre de progression je veux désactiver l'écran tactile pour restreindre d'autres fonctionnalités dans le téléphone android.comment désactiver l'écran tactile dans Android Phone?

quelqu'un peut-il me guider comment y parvenir?

toute aide serait précieuse.

+1

Ce serait prendre le contrôle de l'utilisateur et une mauvaise idée, donc je doute que cela puisse être fait et je ne vois pas pourquoi quelqu'un voudrait qu'il soit fait –

+0

ok, quand je montre la progression sur la liste, j'ai mis en œuvre sur clic fonctionnalité sur la liste item.durant la barre de progression est activée si un élément de liste de presse. il prend le contrôle d'une autre activité, donc je veux limiter cela. – UMAR

+1

Il suffit de supprimer la fonctionnalité onClick de la liste? –

Répondre

5

EDIT

Vous pouvez le faire en mettant en œuvre une extension personnalisée de ListView que vous définissez comme la liste à utiliser dans votre fichier XML. Ensuite, dans votre CustomListView, implémentez la méthode onTouchEvent et n'appelez super.onTouchEvent que si vous souhaitez que le contact soit traité par la liste. Voici ce que je veux dire:

Avoir quelque chose à cet effet dans le fichier de mise en page qui contient votre liste.

<com.steve.CustomListView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/start_menu_background" 
    android:cacheColorHint="#00000000" 
    android:id="@android:id/list"> 
</com.steve.CustomListView> 

ont ensuite une classe personnalisée comme ceci:

public class CustomListView extends ListView { 
    Context mContext; 

    public CustomListView (Context context, AttributeSet attrs){ 
     super(context, attrs); 
     mContext = context; 
    } 

    public boolean onTouchEvent(MotionEvent event){ 
     if (event.getRawY() < 100){ 
      Log.d("Your tag", "Allowing the touch to go to the list."); 
      super.onTouchEvent(event); 
      return true; 
     } else { 
      Log.d("Your tag", "Not allowing the touch to go to the list."); 
      return true; 
     } 
    } 
} 

Ce code ne permettra événements tactiles pour obtenir traitées par le ListView si elles sont dans le top 100 pixels de l'écran. Évidemment, remplacez cette instruction if par quelque chose de plus approprié pour votre application. Ne partez pas non plus dans les instructions du journal une fois que vous l'avez fait fonctionner car vous vous spammerez avec des centaines de lignes de consignation après chaque geste; ils sont seulement les leurs pour rendre évident ce qui se passe.

Questions connexes