Ich versuche, Schaltflächen zu erstellen, die bestimmte Anweisungen basierend auf einem einfachen Klick und einem langen Klick ausführen, aber ich bin mit wenig Verständnis darüber, wie alles zusammengefügt werden. Das Ausführen einer definierten Methode für jede Schaltfläche ist in Ordnung, aber ich denke, es wäre besser, onClickListeners dafür zu verwenden, oder?Verschiedene onClick- und onLongClick-Methoden für zwei Schaltflächen
Also ist mein Code wie folgt. Wie du sehen kannst, versuche ich, beide Arten von Ereignissen für jede Taste zu erfassen, aber wenn ich die Taste 1A drücke, bekomme ich den Toast der 2A, und wenn ich auf die Taste 2A klicke, erhalte ich einen Fehler und die App stürzt ab. Die zweite Sache zu beheben ist, die onClick und onLongClick zu verbinden.
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();
}
});
}
}
[Wenn Sie einen Fehler wie unclosed parentheris sehen oder nicht vollständig entsprechen sollten Variablennamen, es ist wegen einiger bearbeiten von der Kopie/einfügen Ich habe]
Entfernen 'android: onClick = "click1a"' und 'android: onClick = "click2a"'. Dies ist redundant. – AlphaQ
Errror log ?? ... –
@alphaQ, Warum ist das redundant? Sind das nicht zwei verschiedene Knöpfe? – GondraKkal