我想在相机打开之前显示一条消息。
现在用户单击一个按钮,消息显示 1 秒钟,然后相机立即打开。一旦我关闭相机,对话框仍然可见。
我希望只有在您单击警报消息上的“确定”后才能打开相机,并且一旦您关闭相机,就不再显示该消息。
//Button Picture
cameraBtn.setOnClickListener {
showDialog()
pb.visibility = View.VISIBLE
checkPermission(Manifest.permission.CAMERA,
CAMERA_PERMISSION_CODE)
startActivityForResult(receiptsViewModel.cameraIntent(requireActivity()),REQUEST_CODE_KAMERA)
}
fun showDialog() {
val dialogBuilder = AlertDialog.Builder(context)
dialogBuilder.setMessage("The message here")
dialogBuilder.setPositiveButton("Done",
DialogInterface.OnClickListener { dialog, whichButton -> })
val b = dialogBuilder.create()
b.show()
}
Run Code Online (Sandbox Code Playgroud) 添加 setFragmentResultListener(我用来将从另一个片段获取的数据添加到表中)后,我收到以下 logcat 错误:
2021-06-11 16:45:13.689 29090-29090/com.example.nlp_expense_tracker E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.nlp_expense_tracker, PID: 29090
java.lang.IllegalStateException: Fragment HistoryFragment{dcdb784} (1d63faf6-f003-4a57-a9ee-a3ea2331063e id=0x7f0901bb tag=android:switcher:2131296699:1) did not return a View from onCreateView() or this was called before onCreateView().
at androidx.fragment.app.Fragment.requireView(Fragment.java:1964)
at com.example.nlp_expense_tracker.fragments.HistoryFragment.onCreate(HistoryFragment.kt:30)
Run Code Online (Sandbox Code Playgroud)
我还尝试在 onCreate 函数中添加表部分的代码,但出现相同的错误。
这是我的片段的代码:如果有一种方法可以更简单地编写此代码,我也随时欢迎建议。刚开始学习编程。
class HistoryFragment : Fragment() {
private val dataStore = ArrayList<String>()
private val dataAmount = ArrayList<String>()
private val dataDate = ArrayList<String>()
private lateinit var textview2: TextView
private lateinit var textView3: TextView
private lateinit var textView4: TextView
private lateinit var …Run Code Online (Sandbox Code Playgroud)