Android Studio中的计数器对话框
我有一个应用程序,它通过NFC在一张卡上执行写操作,这取决于通过的号码将执行一个号码或其他读取操作。我想我是用一个简单的for循环来实现的,问题是我不知道把它放在哪里。我给你举一个班级的例子:Android Studio中的计数器对话框,android,Android,我有一个应用程序,它通过NFC在一张卡上执行写操作,这取决于通过的号码将执行一个号码或其他读取操作。我想我是用一个简单的for循环来实现的,问题是我不知道把它放在哪里。我给你举一个班级的例子: class HomeFragment : Fragment(), OnClickDetailsMonuments { private lateinit var homeFragmentViewModel: HomeFragmentViewModel private lateinit va
class HomeFragment : Fragment(), OnClickDetailsMonuments {
private lateinit var homeFragmentViewModel: HomeFragmentViewModel
private lateinit var homeMonumentsAdapter: MonumentsAdapter
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
inflater.inflate(R.layout.home_fragment, container, false)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initViews()
getObservers()
onClickGoToMaps(view)
homeFragmentViewModel.loadJsonFromRetrofit()
}
private fun onClickGoToMaps(view: View) {
fbGoToMaps.setOnClickListener {
view.findNavController().navigate(R.id.googleMapsMonumentsFragment)
}
}
private fun getObservers() {
viewModel.getNFCInfo().observe(viewLifecycleOwner, Observer {
when(it.status){
AsyncResult.Status.SUCCESS -> {
NFCProvider.initialize(context, it.data)
}
AsyncResult.Status.ERROR -> {
}
AsyncResult.Status.LOADING -> {
}
}
})
}
override fun onClickFavListener(monuments: MonumentsVO) {
homeFragmentViewModel.updateDatabaseFavoriteCheckFromViewModel(monuments.id, monuments.fav)
}
override fun onClickRowListenerExtras(monuments: MonumentsVO, position: Int, extras: FragmentNavigator.Extras) {
val bundle = bundleOf(BUNDLE_MONUMENT to monuments)
view?.findNavController()?.navigate(R.id.detailsMonumentsFragment, bundle, null, extras)
}
override fun onClickRowListener(monuments: MonumentsVO, position: Int) {}
private fun initViews() {
homeFragmentViewModel = ViewModelProviders.of(this).get(HomeFragmentViewModel::class.java)
rvHomeFragmentMonumentsRetrofit.setHasFixedSize(true)
val layoutManager = LinearLayoutManager(context)
rvHomeFragmentMonumentsRetrofit.layoutManager = layoutManager
}
override fun onResume() {
super.onResume()
(activity as AppCompatActivity).supportActionBar?.show()
}
private fun showDialog(title: String, process: String, titleButton: String) {
val dialog = CustomSuccessDialog(title, process, titleButton)
dialog.show()
}
override onNewIntentResult(intent) {
val message = NFCProvider.retrieveNfcMessage(intent)
if(message) {
showDialog("Correct reading", "1 de 4", "Continue")
} else {
showDialog("Error reading", "1 de 4", "Retry")
}
}
}
正如你所看到的,问题是当我启动NFC时,我传递信息。我从一家互联网服务公司收到这条信息,它返回我必须记录的卡片数量,这是我必须通过的卡片数量,因为一方面我有NFC所需的onNewIntent,另一方面我有观察员,我不知道如何把它们放在一起,每次我写NFC卡时,我都会得到正确的对话,当我继续下一个对话时,对话的数量会增加:1/4,2/4,3/4,等等。看看你能不能帮我一把。非常感谢。您可以保存对话框的实例,并在对话框中更新文本视图,如下所示:
if(message) {
if(mDialog?.isShowing == false) {
showDialog("Correct reading", "1 de 4", "Continue")
} else {
mDialog.updateText("$count de 4")
count ++
}
}
private fun showDialog(title: String, process: String, titleButton: String) {
mDialog = CustomSuccessDialog(title, process, titleButton)
mDialog.show()
}
您的showDialog方法将如下所示:
if(message) {
if(mDialog?.isShowing == false) {
showDialog("Correct reading", "1 de 4", "Continue")
} else {
mDialog.updateText("$count de 4")
count ++
}
}
private fun showDialog(title: String, process: String, titleButton: String) {
mDialog = CustomSuccessDialog(title, process, titleButton)
mDialog.show()
}
问题是,我必须将这个号码传递给您,以便您更新。这个号码必须从我拨打的服务电话中提取。通过intent发送它有什么问题?