2016-08-11 5 views
-1

ich ein Anfänger android developper bin und frage mich:2 (oder mehr), um Ansichten für die gleiche onClick Methode

Könnte ich 2 Tasten in der gleichen, 1 onClick Methode verknüpft werden (was ich werde vermutlich überschreiben, um 2 zusätzliche Parameter zu akzeptieren, zB int btnId und View targetTextView, um zu entscheiden, welche Schaltfläche die Methode aufruft und welcher TextView-Text dann aktualisiert wird?

Beispiel: btn1 wird der Text auf text_view_1
aktualisieren und btn2 text_view_2 aktualisiert.

Außer sie werden wir das gleiche Verfahren verknüpft werden:

public void generalOnClick(View view, String btnId, String textViewId){...} 
+0

Ihre Frage etwas zu verstehen ist kompliziert, können Sie richtig erklären? – Apurva

+0

In Ihrem View.OnClickListener haben Sie eine Ansicht v params, vergleichen Sie einfach die v.getId() mit den beiden R.ids –

+0

@Apurva Ich habe meine Frage bearbeitet, danke für die Eingabe – sup4eli

Antwort

0
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

<TextView 
    android:id="@+id/one" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="One" 
    android:onClick="btnClick"/> 

<TextView 
    android:id="@+id/two" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Two" 
    android:onClick="btnClick"/> 

</LinearLayout> 

Button-Click-Funktion in Ihrer Aktivität

public void btnClick(View view) { 
    TextView tv = (TextView)view; 
    int id = tv.getId(); 
    if(id==R.id.one) { 
     tv.setText("One Clicked"); 
    } else if(id==R.id.two){ 
     tv.setText("Two Clicked"); 
    } 
} 
0

setzte eine Tag-Taste und überprüfen sie mit onClick Methode, welche Tasten Ereignis klicken ausgelöst wurde, wenn es nicht funktioniert, dann folgt folgender Trick,

definieren Sie eine gemeinsame Methode für die Funktionalität, die Sie auf Knopfdruck ausführen werden, machen Sie es als gemeinsame Funktion.

Definieren Sie unabhängig onclick-Ereignis für beide Taste und dann während des Aufrufs der gemeinsamen Funktion, die oben erstellt einige einzigartige Param übergeben und überprüfen Sie es.

0

Verwendung Code folgende:

protected void onCreate(Bundle savedInstanceState) 
{ 

     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main);   
     View.OnClickListener clickListener = new View.OnClickListener() { 
     public void onClick(View v) { 

      if(v.getId().Equals(btn1.getId())){ 
       //do your work here 
      } 
      else{ 
       //work for 2nd button 
      } 
     }; 

     btn1 = (Button)findViewById(R.id.btn_1); 
     btn2 = (Button)findViewById(R.id.btn_2); 
     btn1.setOnClickListener(clickListener); 
     btn2.setOnClickListener(clickListener); 
    } 
Verwandte Themen