2017-07-17 2 views
1

Wenn ich die App ausführen. Die Schaltflächen verweigern die Antwort. Ich stelle einen Toast und einen Logcat ein, um nach Antworten zu suchen. aber nicht. Bitte helfen Sie lösenMein Button reagiert nicht in Android Studio

dies ist mein Quellcode

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello World!" 
    android:id="@+id/textView" /> 

<Button 
    android:text="Button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="14dp" 
    android:id="@+id/button" 
    tools:onClick="topClick" /> 

<Button 
    android:text="Button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/button" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="14dp" 
    android:id="@+id/button2" 
    tools:onClick="bottomClick" /> 

und für meine Java-Methoden; Ersetzen

public class MyActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.my_layout); 

     //Testing the Toast and Log in action 
     Toast.makeText(this, "Can you see me?", Toast.LENGTH_SHORT).show(); 

     Log.i("info", "Done creating the app"); 
    } 


    //creating method topclick 
    public void topClick(View v) { 
     Toast.makeText(this, "Top button clicked", Toast.LENGTH_SHORT).show(); 

     Log.i("info", "The user clicked the top button"); 
    } 

    //creating method bottomclick 
    public void bottomClick(View v) { 
     Toast.makeText(this, "Bottom button clicked", Toast.LENGTH_SHORT).show(); 

     Log.i("info", "the user clicked the bottom button"); 
    } 

} 

Antwort

0

tools:onClick

mit

für beide Tasten.

Weitere Kontext, die Ihnen helfen zu verstehen, warum diese Änderung erforderlich ist, lesen Sie auf der tools namespace up:

Android Studio eine Vielzahl von XML unterstützt im Tools-Namespace-Attribute, die Design-Time-Funktionen (z ermöglichen als welches Layout in einem Fragment angezeigt wird) oder Verhaltensweisen bei der Kompilierung (z. B. welcher Schrumpfmodus auf Ihre XML-Ressourcen angewendet werden soll). Wenn Sie Ihre App erstellen, entfernen die Build-Tools diese Attribute, sodass Ihre APK-Größe und das Laufzeitverhalten nicht beeinträchtigt werden.

0

Ich würde nicht empfehlen, diese Implementierung von Ihrem verwenden, wie Sie kaum wissen, welche Methode für welche Taste. Versuchen Sie es stattdessen.

XML

<Button 
    android:text="Button" 
    android:id="@+id/button1" /> 

<Button 
    android:text="Button" 
    android:id="@+id/button2" /> 

ACTIVITY.JAVA

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_layout); 

    Button button01 = (Button)findViewById(R.id.button01); 
    Button button02 = (Button)findViewById(R.id.button02); 

    button01 .setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(MyActivity.this, "This is button01", Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    button02 .setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(MyActivity.this, "This is button02", Toast.LENGTH_SHORT).show(); 
     } 
    }); 
} 
Verwandte Themen