我有一个活动和一些片段。我的结构看起来像这样:
主要活动 - > - 菜单1片段 - >每日片段/每周片段/每月片段/年度片段 - 菜单2片段 - >空 - 菜单3片段 - >空
所有菜单都是碎片。
现在我想向数据库添加值(Cloud Firebase),但我无法调用该方法(onClick)。
我做了OnClickListener,并覆盖了onClick(View v)。它仍然无法正常工作。我还需要什么?
每日片段:
公共类DailyFragment扩展了Fragment工具 View.OnClickListener {
private static final String QUOTE_KEY = "quote"; private static final String AUTHOR_KEY = "author"; private static final String TAG= "InspiringQuote"; private DocumentReference mDocRef = FirebaseFirestore.getInstance().document("sampleData/inspirations"); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //just change the fragment_weekly //with the fragment you want to inflate //like if the class is DailyFragment it should have R.layout.home_fragment //if it is WeeklyFragment it should have R.layout.fragment_weekly //return inflater.inflate(R.layout.fragment_daily, null); View layout = inflater.inflate(R.layout.fragment_daily, container, false); //Dołączamy do przycisku obiekt nasłuchujący Button saveButton = (Button)layout.findViewById(R.id.bn_save); saveButton.setOnClickListener(this); return layout; } @Override public void onClick(View v){ switch (v.getId()) { case R.id.bn_save: saveQuote(v); break; } } public void saveQuote (View view){ EditText quoteView = (EditText) view.findViewById(R.id.quote); EditText authorView = (EditText) view.findViewById(R.id.author); String quoteText = quoteView.getText().toString(); String authorText = authorView.getText().toString(); if (quoteText.isEmpty() || authorText.isEmpty()) { return; } Map<String, Object> dataToSave = new HashMap<String, Object>(); dataToSave.put(QUOTE_KEY, quoteText); dataToSave.put(AUTHOR_KEY, quoteText); mDocRef.set(dataToSave).addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { Log.d(TAG, "Dokument został zapisany!"); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Błąd, dokument nie został zapisany.", e); } }); }}
XML:
<TextView android:id="@+id/tv_dzienne" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/quote" android:layout_centerHorizontal="true" android:layout_marginBottom="52dp" android:text="Dzienne" android:textAppearance="@style/Base.TextAppearance.AppCompat.Large" /> <EditText android:id="@+id/quote" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/bn_save" android:layout_alignParentStart="true" android:layout_marginBottom="67dp" android:ems="10" android:hint="Podaj wartość" android:inputType="textCapSentences" android:paddingLeft="8dp" android:paddingRight="8dp" android:paddingTop="8dp" /> <EditText android:id="@+id/author" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentStart="true" android:layout_alignTop="@+id/quote" android:layout_marginTop="51dp" android:ems="10" android:hint="Nazwa" android:inputType="textPersonName" android:paddingLeft="8dp" android:paddingRight="8dp" android:paddingTop="8dp" /> <Button android:id="@+id/bn_save" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_marginEnd="8dp" android:onClick="saveQuote" --> **cannot resolve symbol** android:text="@string/save_quote" />
02-13 19:09:49.852 11587-11587/? I/zygote: Not late-enabling -Xcheck:jni (already on)
02-13 19:09:49.865 11587-11587/? W/zygote: Unexpected CPU variant for X86 using defaults: x86
02-13 19:09:50.864 11587-11587/? W/zygote: Skipping duplicate class check due to unrecognized classloader
02-13 19:09:50.867 11587-11587/? W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
02-13 19:09:50.871 11587-11587/? W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
02-13 19:09:50.875 11587-11587/? I/BiChannelGoogleApi: [FirebaseAuth: ] No Fallback module; NOT setting up for lazy initialization
02-13 19:09:50.879 11587-11607/? W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
02-13 19:09:50.892 11587-11610/? I/DynamiteModule: Considering local module com.google.android.gms.flags:2 and remote module com.google.android.gms.flags:0
02-13 19:09:50.892 11587-11610/? I/DynamiteModule: Selected local version of com.google.android.gms.flags
02-13 19:09:50.894 11587-11607/? I/FirebaseAuth: [FirebaseAuth:] Loading module via FirebaseOptions.
02-13 19:09:50.894 11587-11607/? I/FirebaseAuth: [FirebaseAuth:] Preparing to create service connection to gms implementation
02-13 19:09:50.894 11587-11587/? V/FA: Cancelling job. JobID: -386501406
02-13 19:09:50.895 11587-11587/? V/FA: Registered activity lifecycle callback
02-13 19:09:50.896 11587-11587/? I/FirebaseInitProvider: FirebaseApp initialization successful
02-13 19:09:50.917 11587-11613/? V/FA: Collection enabled
02-13 19:09:50.917 11587-11613/? V/FA: App package, google app id: com.example.xovin.organizerrozwojuosobistego, 1:922322846834:android:d173fbb977e9a87d
02-13 19:09:50.918 11587-11613/? I/FA: App measurement is starting up, version: 11910
02-13 19:09:50.918 11587-11613/? I/FA: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
02-13 19:09:50.918 11587-11610/? W/DynamiteModule: Local module descriptor class for com.google.android.gms.crash not found.
02-13 19:09:50.919 11587-11613/? I/FA: To enable faster debug mode event logging run:
adb shell setprop debug.firebase.analytics.app com.example.xovin.organizerrozwojuosobistego
02-13 19:09:50.919 11587-11613/? D/FA: Debug-level message logging enabled
02-13 19:09:50.922 11587-11610/? I/DynamiteModule: Considering local module com.google.android.gms.crash:0 and remote module com.google.android.gms.crash:10
02-13 19:09:50.922 11587-11610/? I/DynamiteModule: Selected remote version of com.google.android.gms.crash, version >= 10
02-13 19:09:50.925 11587-11587/? V/FA: onActivityCreated
02-13 19:09:50.974 11587-11610/? W/zygote: Skipping duplicate class check due to unrecognized classloader
02-13 19:09:50.979 11587-11613/? V/FA: Connecting to remote service
02-13 19:09:50.992 11587-11613/? V/FA: Connection attempt already in progress
02-13 19:09:50.995 11587-11610/? I/FirebaseCrashApiImpl: FirebaseCrashApiImpl created by ClassLoader ae[DexPathList[[zip file "/system/priv-app/PrebuiltGmsCore/app_chimera/m/DynamiteModulesC.apk"],nativeLibraryDirectories=[/data/user_de/0/com.google.android.gms/app_chimera/m/00000003/n/x86, /system/lib, /vendor/lib]]]
02-13 19:09:50.995 11587-11610/? I/FirebaseCrash: FirebaseCrash reporting loaded - com.google.android.gms.internal.zzdzk@963bd28
02-13 19:09:51.006 11587-11611/? I/DynamiteModule: Considering local module com.google.android.gms.flags:2 and remote module com.google.android.gms.flags:0
02-13 19:09:51.006 11587-11611/? I/DynamiteModule: Selected local version of com.google.android.gms.flags
02-13 19:09:51.012 11587-11611/? W/DynamiteModule: Local module descriptor class for com.google.android.gms.crash not found.
02-13 19:09:51.042 11587-11611/? I/FirebaseCrashApiImpl: FirebaseCrash reporting API initialized
02-13 19:09:51.042 11587-11611/? I/FirebaseCrash: FirebaseCrash reporting initialized com.google.android.gms.internal.zzdzk@963bd28
02-13 19:09:51.042 11587-11611/? D/FirebaseCrash: Firebase Analytics Listener for Firebase Crash is initialized
02-13 19:09:51.134 11587-11587/? W/linker: "/data/user_de/0/com.google.android.gms/app_extracted_libs/x86/libconscrypt_gmscore_jni.so" unused DT entry: type 0xf arg 0x91
02-13 19:09:51.135 11587-11587/? V/NativeCrypto: Registering com/google/android/gms/org/conscrypt/NativeCrypto's 276 native methods...
02-13 19:09:51.183 11587-11587/? D/NetworkSecurityConfig: No Network Security Config specified, using platform default
02-13 19:09:51.185 11587-11592/? I/zygote: Do partial code cache collection, code=28KB, data=30KB
02-13 19:09:51.185 11587-11587/? I/ProviderInstaller: Installed default security provider GmsCore_OpenSSL
02-13 19:09:51.186 11587-11592/? I/zygote: After code cache collection, code=27KB, data=30KB
02-13 19:09:51.186 11587-11592/? I/zygote: Increasing code cache capacity to 128KB
02-13 19:09:51.223 11587-11613/? V/FA: Connection attempt already in progress
02-13 19:09:51.224 11587-11613/? V/FA: Activity resumed, time: 79702594
02-13 19:09:51.239 11587-11613/? I/FA: Tag Manager is not found and thus will not be used
02-13 19:09:51.241 11587-11613/? D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=-3727998583761649633}]
02-13 19:09:51.243 11587-11618/? D/OpenGLRenderer: HWUI GL Pipeline
02-13 19:09:51.274 11587-11613/? V/FA: Connection attempt already in progress
02-13 19:09:51.307 11587-11592/? I/zygote: Do partial code cache collection, code=37KB, data=54KB
02-13 19:09:51.310 11587-11592/? I/zygote: After code cache collection, code=34KB, data=53KB
02-13 19:09:51.310 11587-11592/? I/zygote: Increasing code cache capacity to 256KB
02-13 19:09:51.312 11587-11592/? I/zygote: JIT allocated 71KB for compiled code of void android.widget.TextView.<init>(android.content.Context, android.util.AttributeSet, int, int)
02-13 19:09:51.312 11587-11592/? I/zygote: Compiler allocated 4MB to compile void android.widget.TextView.<init>(android.content.Context, android.util.AttributeSet, int, int)
02-13 19:09:53.367 11587-11618/com.example.xovin.organizerrozwojuosobistego I/OpenGLRenderer: Initialized EGL, version 1.4
02-13 19:09:53.367 11587-11618/com.example.xovin.organizerrozwojuosobistego D/OpenGLRenderer: Swap behavior 1
02-13 19:09:53.367 11587-11618/com.example.xovin.organizerrozwojuosobistego W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
02-13 19:09:53.367 11587-11618/com.example.xovin.organizerrozwojuosobistego D/OpenGLRenderer: Swap behavior 0
02-13 19:09:54.392 11587-11618/com.example.xovin.organizerrozwojuosobistego D/EGL_emulation: eglCreateContext: 0xa2f74f00: maj 2 min 0 rcv 2
02-13 19:09:55.204 11587-11592/com.example.xovin.organizerrozwojuosobistego I/zygote: Do full code cache collection, code=125KB, data=68KB
02-13 19:09:55.223 11587-11592/com.example.xovin.organizerrozwojuosobistego I/zygote: After code cache collection, code=102KB, data=39KB
02-13 19:09:55.400 11587-11618/com.example.xovin.organizerrozwojuosobistego D/EGL_emulation: eglMakeCurrent: 0xa2f74f00: ver 2 0 (tinfo 0x92495230)
02-13 19:09:55.428 11587-11587/com.example.xovin.organizerrozwojuosobistego I/Choreographer: Skipped 249 frames! The application may be doing too much work on its main thread.
02-13 19:09:57.664 11587-11618/com.example.xovin.organizerrozwojuosobistego D/EGL_emulation: eglMakeCurrent: 0xa2f74f00: ver 2 0 (tinfo 0x92495230)
02-13 19:09:59.755 11587-11587/com.example.xovin.organizerrozwojuosobistego I/Choreographer: Skipped 259 frames! The application may be doing too much work on its main thread.
02-13 19:09:59.755 11587-11613/com.example.xovin.organizerrozwojuosobistego D/FA: Connected to remote service
02-13 19:09:59.755 11587-11613/com.example.xovin.organizerrozwojuosobistego V/FA: Processing queued up service tasks: 4
02-13 19:09:59.922 11587-11587/com.example.xovin.organizerrozwojuosobistego W/View: dispatchProvideAutofillStructure(): not laid out, ignoring
02-13 19:09:59.928 11587-11587/com.example.xovin.organizerrozwojuosobistego I/chatty: uid=10089(u0_a89) com.example.xovin.organizerrozwojuosobistego identical 7 lines
02-13 19:09:59.928 11587-11587/com.example.xovin.organizerrozwojuosobistego W/View: dispatchProvideAutofillStructure(): not laid out, ignoring
02-13 19:09:59.935 11587-11587/com.example.xovin.organizerrozwojuosobistego I/AssistStructure: Flattened final assist data: 9104 bytes, containing 1 windows, 44 views
02-13 19:09:59.950 11587-11628/com.example.xovin.organizerrozwojuosobistego I/FirebaseCrash: Sending crashes
02-13 19:10:01.237 11587-11613/com.example.xovin.organizerrozwojuosobistego V/FA: Session started, time: 79712610
02-13 19:10:01.240 11587-11613/com.example.xovin.organizerrozwojuosobistego D/FA: Logging event (FE): session_start(_s), Bundle[{firebase_event_origin(_o)=auto, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=-3727998583761649633}]
02-13 19:10:06.267 11587-11613/com.example.xovin.organizerrozwojuosobistego V/FA: Inactivity, disconnecting from the service
02-13 19:10:07.754 11587-11592/com.example.xovin.organizerrozwojuosobistego I/zygote: Do partial code cache collection, code=123KB, data=70KB
02-13 19:10:07.754 11587-11592/com.example.xovin.organizerrozwojuosobistego I/zygote: After code cache collection, code=123KB, data=70KB
02-13 19:10:07.754 11587-11592/com.example.xovin.organizerrozwojuosobistego I/zygote: Increasing code cache capacity to 512KB
02-13 19:10:26.008 11587-11592/com.example.xovin.organizerrozwojuosobistego I/zygote: Do full code cache collection, code=241KB, data=166KB
02-13 19:10:26.008 11587-11592/com.example.xovin.organizerrozwojuosobistego I/zygote: After code cache collection, code=162KB, data=105KB
02-13 19:10:31.670 11587-11587/com.example.xovin.organizerrozwojuosobistego D/AndroidRuntime: Shutting down VM
02-13 19:10:31.671 11587-11587/com.example.xovin.organizerrozwojuosobistego E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.xovin.organizerrozwojuosobistego, PID: 11587
java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
at com.example.xovin.organizerrozwojuosobistego.DailyFragment.saveQuote(DailyFragment.java:61)
at com.example.xovin.organizerrozwojuosobistego.DailyFragment$1.onClick(DailyFragment.java:48)
at android.view.View.performClick(View.java:6256)
at android.view.View$PerformClick.run(View.java:24701)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
02-13 19:10:31.671 11587-11587/com.example.xovin.organizerrozwojuosobistego E/UncaughtException: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
at com.example.xovin.organizerrozwojuosobistego.DailyFragment.saveQuote(DailyFragment.java:61)
at com.example.xovin.organizerrozwojuosobistego.DailyFragment$1.onClick(DailyFragment.java:48)
at android.view.View.performClick(View.java:6256)
at android.view.View$PerformClick.run(View.java:24701)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
02-13 19:10:31.675 11587-11613/com.example.xovin.organizerrozwojuosobistego D/FA: Logging event (FE): app_exception(_ae), Bundle[{firebase_event_origin(_o)=crash, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=-3727998583761649633, timestamp=1518549031673, fatal=1}]
02-13 19:10:31.747 11587-11613/com.example.xovin.organizerrozwojuosobistego V/FA: Connecting to remote service
02-13 19:10:31.749 11587-11613/com.example.xovin.organizerrozwojuosobistego V/FA: Recording user engagement, ms: 40528
02-13 19:10:31.752 11587-11613/com.example.xovin.organizerrozwojuosobistego D/FA: Logging event (FE): user_engagement(_e), Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=40528, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=-3727998583761649633}]
02-13 19:10:31.766 11587-11613/com.example.xovin.organizerrozwojuosobistego V/FA: Connection attempt already in progress
02-13 19:10:31.902 11587-11638/com.example.xovin.organizerrozwojuosobistego I/FirebaseCrash: Sending crashes
02-13 19:10:32.501 11587-11638/com.example.xovin.organizerrozwojuosobistego I/FirebaseCrash: Response code: 200
02-13 19:10:32.503 11587-11638/com.example.xovin.organizerrozwojuosobistego I/FirebaseCrash: Report sent with crash report id: 1794c89e94000000
答案 0 :(得分:0)
Button saveButton = (Button)layout.findViewById(R.id.bn_save);
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do something when the corky2 is clicked
}
});
尝试这种方式,因为我认为当你转到你的片段时它会改变你的观点,所以基本上你没有在正确的视图上