2017-01-16 22 views
0

Nur eine Schaltfläche mit einem Klick-Ereignis, das eine Verknüpfung zu einer Webseite öffnet, auf diesem Layout gibt es mehrere Schaltflächen. Jetzt möchte ich das Ereignis der ersten Schaltfläche duplizieren, um es auch für die anderen zu verwenden. Aber wenn ich den Code dupliziere und die Namen der anderen Taste ersetze, erhalte ich einige Fehler. Was ist das Problem?;Versuchen Sie, Click Click Event

public class FourthFragment extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fourth_layout, container, false); 
    final Button button2 = (Button) view.findViewById(R.id.button2); 
    button2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://maurick.magister.net")); 
      startActivity(browserIntent); 
     } 

    }); 
    return view; 

    final Button button3 = (Button) view.findViewById(R.id.button3); 
//a red line is showing line above 
    button3.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://maurickcollege.net")); 
      startActivity(browserIntent); 
     } 

    }); 
    return view; 

} 
} 
+0

Ist das nicht android Oo – Frogger

Antwort

0

zwei return view Aussagen. Das macht unteren Code nutzlos. Das ist der Fehler

2

Ihre ersten return view-Anweisungen bewirkt, dass die Methode an diesem Punkt zurückkehrt. Ihr Code unterhalb dieser Anweisung wird nicht ausgeführt. Ihre ID sollte Ihnen die Fehlermeldung Unreachable statement anzeigen.

Um Ihre zwei Zuhörer: nur einen Zuhörer erstellen und auf beiden Ansichten gesetzt:

View.OnClickListener listener = new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://maurickcollege.net")); 
     startActivity(browserIntent); 
    } 
} 
view.findViewById(R.id.button2).setOnClickListener(listener); 
view.findViewById(R.id.button3).setOnClickListener(listener); 
0

Anstatt neue OnClickListener Verwendung View.OnClickListener Implementieren in Ihrer Klasse, , die ein gemeinsames Verfahren schaffen für alle Click-Ereignisse

wo wie dies zu tun ..

@Override 
public void onClick(View v) { 
    switch (v.getId()){ 
     case R.id.button_1: 
     case R.id.button_2: 
      //your common action goes here which will be executed for both buttons 
    } 
}