J'essaye de créer des boutons qui vont exécuter certaines instructions différentes en fonction d'un simple clic et d'un clic long, mais je suis frappé d'un manque de compréhension sur la façon de tout mettre ensemble. Effectuer une méthode définie pour chaque bouton est ok, mais je pense qu'il serait préférable d'utiliser onClickListeners pour cela, n'est-ce pas?Différentes méthodes onClick et onLongClick pour deux boutons
Donc, mon code est le suivant. Comme vous pouvez le voir, j'essaie d'attraper les deux types d'événements pour chaque bouton, mais quand j'appuie sur le bouton 1A, j'obtiens le toast du 2A, et quand je clique sur le bouton 2A, j'obtiens une erreur et l'application plante. La deuxième chose à corriger est de lier ensemble onClick et onLongClick.
activity_scout.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.android.scout.ScoutActivity">
<LinearLayout
android:id="@+id/activity_scout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="8dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingTop="8dp"
android:orientation="vertical" >
<Button
android:id="@+id/but1A"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1a"
android:onClick="click1a"
/>
<Button
android:id="@+id/but2A"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2a"
android:onClick="click2a" />
</LinearLayout>
</ScrollView>
ScoutActivity.java
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import static com.example.android.basketscout.R.id.butPlayer1A;
import static com.example.android.basketscout.R.id.butPlayer2A;
import static com.example.android.basketscout.R.id.butPlayer3A;
import static com.example.android.basketscout.R.id.butPlayer4A;
import static com.example.android.basketscout.R.id.butPlayer5A;
import static com.example.android.basketscout.R.id.textView;
public class ScoutActivity extends AppCompatActivity {
Button but1A;
Button but2A;
Button but3A;
Button but4A;
Button but5A;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scout);
but1A = (Button) findViewById(R.id.but1A);
but2A = (Button) findViewById(R.id.but1A);
but1A.setOnClickListener(new View.OnClickListener() {
public void onClick(View view){
Toast.makeText(getApplicationContext(), "Button 1A clicked", Toast.LENGTH_SHORT).show();
}
});
but2A.setOnClickListener(new View.OnClickListener() {
public void onClick(View view){
Toast.makeText(getApplicationContext(), "Button 2A clicked", Toast.LENGTH_SHORT).show();
}
});
but1A.setOnLongClickListener(new View.OnLongClickListener(){
public void onLongClick (View view) {
Toast.makeText(getApplicationContext(),"Button 1A long clicked", Toast.LENGTH_SHORT).show();
}
});
but2A.setOnLongClickListener(new View.OnLongClickListener(){
public void onLongClick (View view) {
Toast.makeText(getApplicationContext(),"Button 2A long clicked", Toast.LENGTH_SHORT).show();
}
});
}
}
[Si vous voyez une erreur comme parentheris ou non fermé pas les noms complètement variables correctes, il est à cause de certains de modifier la copie/coller je l'ai fait]
Supprimer 'android: onclick = "click1a"' et 'android: onclick = "click2a"'. C'est redondant. – AlphaQ
Journal d'erreur ?? ... –
@alphaQ, Pourquoi est-ce redondant? Ne sont-ils pas deux boutons différents? – GondraKkal