2012-03-28 1 views
0

Une sorte de problème étrange dans les dispositions .. J'ai une disposition linéaire comme ci-dessous qui a vue de texte et d'image ... J'ai écrit un événement de clic pour la disposition linéaire - comme sur le clic de cette distribution linéaire id is verify) J'ai quelques trucs à faire ... J'ai trouvé que - ces deux vues enfants prennent aussi ces événements click et se retrouvent dans deux exécutions simultanément ... je ne pouvais pas désactiver ces focus ou événements cliquables. ... (sur le clic de cet événement - j'appelle un asynchrone) est là pour désactiver ces vues de prendre la concentration ... j'ai essayé la plupart d'entre elles comme android: focusable et android: cliquable .... mais il a fait pas aider .. :(Mise en page et son enfant

<LinearLayout 
     android:id="@+id/verify" 
     android:layout_width="150dp" 
     android:layout_height="100dp" 
     android:layout_marginLeft="10dp" 
     android:background="@drawable/clearbluesky" 

     android:orientation="vertical" 
     > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:clickable="false" 
      android:focusable="false" 
      android:text="Verify" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textColor="@android:color/black" /> 

     <ImageView 
      android:id="@+id/imageView2" 
      android:layout_width="70dp" 
      android:layout_height="30dp" 
      android:layout_marginLeft="10dp" 
      android:layout_weight="1" 
      android:clickable="false" 
      android:focusable="false" 
      android:src="@drawable/fps" /> 
    </LinearLayout> 

continue.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
         new AsyncTask<String, String, String>() 
         { 
          boolean testresult = false; 
          boolean clearBuf = false; 
          ProgressDialog progressDialog = null; 
          @Override 
          protected void onPostExecute(String result){                 super.onPostExecute(result); 
           progressDialog.dismiss(); 
          } 
          @Override 
          protected void onPreExecute() { 

           super.onPreExecute(); 
           progressDialog = new ProgressDialog(getApplicationContext()); 
           progressDialog.setMessage("Continue"); 
           progressDialog.setIndeterminate(false); 
           progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
           progressDialog.show(); 
          } 
          @Override 
          protected String doInBackground(String... params) { 
                // Calling some function    
           return null; 
          } 

         }.execute(""); 

    }); 
+0

vous pouvez afficher le code onClickListener .. – user936414

+0

j'ai republié avec extrait onClick .. s'il vous plaît vérifier ... –

+0

méthode onClick() est appelée une seule fois . Il n'y a pas de problème à cause de textView ou imageView. – user936414

Répondre

3

simplement Mis en œuvre OnclickListener et poignée cliquez en utilisant comme il id comme ci-dessous

 tv = (TextView) findViewById(R.id.textView1); 
    im = (ImageView) findViewById(R.id.imageView2); 
    ly = (LinearLayout) findViewById(R.id.verify); 
    ly.setOnClickListener(this); 
    tv.setOnClickListener(this); 
    im.setOnClickListener(this); 


    @Override 
public void onClick(View v) { 
    if(v==ly){ 
     Toast.makeText(TestActivity.this, "I clicked", 
       Toast.LENGTH_SHORT).show(); 

    }if(v==tv){ 

    }if(v==im){ 

    } 

} 

Je espère que ça fonctionne pour vous.

Le problème que vous rencontrez en raison de son @override ..

+0

votre réponse a été très utile et éducative .... mais je me demande encore pourquoi il faudrait deux événements de clic (il peut ne pas arriver à chaque fois, mais il arrive dans certains cas ..) –

Questions connexes