1

Nach Überprüfung jeder möglichen Antwort kann ich nicht finden, was mit meinem Code falsch ist.Android Studio - Fragment onClickListener funktioniert nicht

Ich brauche einen OnClickListener für 3 Fragmente, von denen einer von mainActivity geladen wird. Keiner von ihnen arbeitet. Ich habe den OnClickListener für jedes Fragment implementiert.

Hier ist mein Code:

RequestFragment1.java

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    view = inflater.inflate(R.layout.fragment_request1, container, false); 
    Button buttonRequest1 = (Button) view.findViewById(R.id.Request1Button); 
    buttonRequest1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      String url = "https://www.google.ca/"; 
      WebView httpRequestResult = (WebView) getActivity().findViewById(R.id.webViewResult); 
      httpRequestResult.getSettings().setJavaScriptEnabled(false); 
      httpRequestResult.loadUrl(url); 
      getActivity().setContentView(R.layout.requests_webview); 
     } 
    }); 
    return view; 
} 

fragment_request1.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/relativeLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <Button 
     android:id="@+id/Request1Button" 
     android:layout_width="match_parent" 
     android:layout_height="90dp" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" 
     android:text="Requête 1" /> 

</RelativeLayout> 

MainActivity.java

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

    View currentView = findViewById(android.R.id.content); 
    //Implementation du TouchListener 
    currentView.setOnTouchListener(new SwipeListener(MainActivity.this) { 

Es muss eine Webansicht durch Drücken von Request1Button öffnen.

Vielen Dank für Ihre Zeit!

+0

Willkommen bei Stack Overflow. Um Ihnen zu helfen, brauchen wir weitere Informationen. Was genau soll diese App machen? Was macht es jetzt? Außerdem würde es hilfreich sein, wenn Sie den Code reduzieren, um sich direkt auf Ihre Frage zu konzentrieren. Sie können ein neues Android Studio-Projekt zum Experimentieren erstellen. Holen Sie sich diese Prototyp-App, um mit einem einzelnen Listener zu arbeiten. Dann arbeite von dort. –

+0

p.s. Denken Sie auch daran, dass Java den gesamten Code in Klassen benötigt. Das Einbeziehen dieser Klassendeklarationen gibt uns eine bessere Vorstellung vom Kontext Ihres Codes, insbesondere in der Android-Entwicklung. –

Antwort

1
setContentView(R.layout.fragment_request1); 

Diese Zeile in MainActivity.onCreate() bläht das Layout in der XML-Datei fragment_request1 Namen definiert. Es ist jedoch nicht ein Fragment erstellen. Daher wird RequestFragment1.onCreateView() nie aufgerufen und OnClickListener wird nie festgelegt.

Sie müssen das Fragment ordnungsgemäß erstellen und mit FragmentManager laden. Es gibt viele Online-Tutorials, die zeigen, wie das geht. Ich schlage vor, mit dem auf der Android Developer Website zu beginnen.

+0

Sie hatten Recht! Ich werde deine Antwort akzeptieren, sobald alles gelöst ist, aber du warst auf dem richtigen Weg! Vielen Dank! – Selecto

Verwandte Themen