I snackbar Ansicht zeigen versuche, wenn ich auf die Schaltfläche klicken, aber es zeigt, schließen Fehler erzwingen, wenn ich auf die Schaltfläche klickenSnackbar arbeitet nicht innerhalb Fragment Klasse
Ich habe unten Fragment Klasse definieren und auch Protokollfehler.
Ich habe Fragment Klasse:
public class HomeFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
context = getActivity();
initUI(rootView);
return rootView;
}
private void initUI(View view) {
btn= (Button) view.findViewById(R.id.btnpress);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(getView(),"SnackBAr Test" , Snackbar.LENGTH_LONG).show();
}
});
}
fragment_home.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:id="@+id/mainrl"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:orientation="horizontal"
android:paddingBottom="40dp" >
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:Text="PLEASE PRESS" />
</LinearLayout>
</RelativeLayout>
Wenn ich auf den Knopf drücken, wird es nicht snackbar
zeigt. es gibt unter Fehlerprotokoll:
java.lang.NoClassDefFoundError: android.support.design.widget.CoordinatorLayout
at android.support.design.widget.Snackbar.findSuitableParent(Snackbar.java:237)
at android.support.design.widget.Snackbar.make(Snackbar.java:206)
at com.example.test.fragment.HomeFragment$3.onLeftCardExit(HomeFragment.java:168)
at android.view.ViewPropertyAnimator$AnimatorEventListener.onAnimationEnd(ViewPropertyAnimator.java:1030)
at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1056)
at android.animation.ValueAnimator.access$400(ValueAnimator.java:50)
at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:644)
at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:660)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788)
at android.view.Choreographer.doCallbacks(Choreographer.java:591)
at android.view.Choreographer.doFrame(Choreographer.java:559)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(Native Method)
Wie kann ich diesen Fehler beheben?
Haben Sie versucht, es durch 'v' statt' getView' als ersten Parameter übergeben? –
Was ist v? Ich habe versucht, indem ich 'view' anstelle von' getView' übertrage, aber es funktioniert nicht. gleicher Fehler – deepak
Mean 'onClick (View v)' Methode Parameter –