Android App Crashing (Fragment und Xml Onclick)

Second_fragment.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/f2_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/f2_textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/f2_tv" /> <Button android:id="@+id/f2_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="button" android:text="@string/f2_bttn" /> 

SecondFragment.java

  • Setzen Sie Android IP, DNS, GATEWAY Programmierung programmgesteuert
  • Dynamic Radio Button Bedienung
  • Android 3.2 den Titel aus der Aktionsleiste entfernen
  • Gibt es eine Funktion, die HTML in Klartext umwandelt?
  • Wie man die Breite und die Höhe eines ausziehbaren Gegenstandes angibt
  • Wegbeschreibung Zoom-Ebene für gegebene Grenzen auf Android wie auf JS Google Maps API: map.getBoundsZoomLevel (bounds)
  •   public class SecondFragment extends Fragment { FragmentInterface iface; public interface FragmentInterface { public void buttonPressed(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.second_fragment, container, false); } @Override public void onAttach(Activity activity) { super.onAttach(activity); // This makes sure that the container activity has implemented // the callback interface. If not, it throws an exception try { iface = (FragmentInterface) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement FragmentInterface"); } } public void button(View view) { } } 

    Ich bin Neuling und ich habe keine Ahnung, warum meine Anwendung abstürzen, wenn die Taste gedrückt wird? Kann jemand erklären?

     01-03 13:28:25.612: E/AndroidRuntime(1276): FATAL EXCEPTION: main 01-03 13:28:25.612: E/AndroidRuntime(1276): java.lang.IllegalStateException: Could not find a method button(View) in the activity class com.sp.fragments.MainActivity for onClick handler on view class android.widget.Button with id 'f2_button' 01-03 13:28:25.612: E/AndroidRuntime(1276): at android.view.View$1.onClick(View.java:3584) 01-03 13:28:25.612: E/AndroidRuntime(1276): at android.view.View.performClick(View.java:4202) 01-03 13:28:25.612: E/AndroidRuntime(1276): at android.view.View$PerformClick.run(View.java:17340) 01-03 13:28:25.612: E/AndroidRuntime(1276): at android.os.Handler.handleCallback(Handler.java:725) 01-03 13:28:25.612: E/AndroidRuntime(1276): at android.os.Handler.dispatchMessage(Handler.java:92) 01-03 13:28:25.612: E/AndroidRuntime(1276): at android.os.Looper.loop(Looper.java:137) 01-03 13:28:25.612: E/AndroidRuntime(1276): at android.app.ActivityThread.main(ActivityThread.java:5039) 01-03 13:28:25.612: E/AndroidRuntime(1276): at java.lang.reflect.Method.invokeNative(Native Method) 01-03 13:28:25.612: E/AndroidRuntime(1276): at java.lang.reflect.Method.invoke(Method.java:511) 01-03 13:28:25.612: E/AndroidRuntime(1276): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 01-03 13:28:25.612: E/AndroidRuntime(1276): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 01-03 13:28:25.612: E/AndroidRuntime(1276): at dalvik.system.NativeStart.main(Native Method) 01-03 13:28:25.612: E/AndroidRuntime(1276): Caused by: java.lang.NoSuchMethodException: button [class android.view.View] 01-03 13:28:25.612: E/AndroidRuntime(1276): at java.lang.Class.getConstructorOrMethod(Class.java:460) 01-03 13:28:25.612: E/AndroidRuntime(1276): at java.lang.Class.getMethod(Class.java:915) 01-03 13:28:25.612: E/AndroidRuntime(1276): at android.view.View$1.onClick(View.java:3577) 01-03 13:28:25.612: E/AndroidRuntime(1276): ... 11 more 01-03 13:28:27.563: I/Process(1276): Sending signal. PID: 1276 SIG: 9 

  • Das Aufrufen von beenden () auf einer Android-Aktivität endet nicht
  • Nehmen Sie foto w / kamera absicht und zeigen sie in imageView oder textView an?
  • Augmented Reality Framework
  • Android: Ändern Sie die absolute Position einer Ansicht programmgesteuert
  • Export eines Eclipse-Projekts als gradle
  • Android - Blinkendes Bild mit der Alpha-Fade-Animation
  • 5 Solutions collect form web for “Android App Crashing (Fragment und Xml Onclick)”

    Aktivität:

    Wenn Sie Aktivität haben und wenn Sie android:onClick definieren android:onClick Attribut in XML, dann müssen Sie nur eine Methode mit dem gleichen Namen in Aktivität definieren.

    Fragment:

    Aber wann immer du Fragment hast und wenn du den Klick-Listener definieren willst, indem du nur android:onClick Attribut definierst, dann musst du eine Methode mit demselben Namen in der eigentlichen Aktivität definieren, aus der Fragment aufgerufen wurde.

    ODER und sonst kannst du einfach einen Klick-Listener programmgesteuert implementieren.

    Sie sparen sich viel Mühe, indem Sie den onClickListener programmgesteuert onClickListener (anstatt über XML). Dies soll dir helfen, was du zu tun versuchst:

     @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.second_fragment, container, false); final View button = view.findViewById(R.id.f2_button); button.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { /* DO SOMETHING UPON THE CLICK */ } } ); return view; } 

    Wenn du onClick="button" in deiner .xml definierst, onClick="button" du eine Methode namens public void button(View v) in der Aktivität definieren, die das Fragment onClick="button" , nicht im Fragment selbst.

     public class MainActivity extends FragmentActivity{ ... public void button(View v){ ... } ... } 

    Ihre Methode-Schaltfläche muss in der Klasse MainActivity definiert sein.

    Das hat für mich gearbeitet: (Android studio)

      @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.update_credential, container, false); Button bt_login = (Button) rootView.findViewById(R.id.btnSend); bt_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { System.out.println("Hi its me"); }// end onClick }); return rootView; }// end onCreateView 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.