Error(message: String?)< /code> < /p>
Dies sind Live -Daten für boolean:
val mutableUserDataFound : MutableLiveData = MutableLiveData()< /code>
Jetzt, während Sie diesen Spaß verwenden: < /p>
fun availabilityCheckforUserInfo() = viewModelScope.launch {
mutableUserDataFound.postValue(TypeSafe.Loading())
try {
val userinfo = repository.getUserInfo()
if (userinfo != null) {
mutableUserDataFound.postValue(TypeSafe.Success(true))
} else {
mutableUserDataFound.postValue(TypeSafe.Success(false))
}
} catch (e: Exception) {
mutableUserDataFound.postValue(TypeSafe.Error(e.message))
}
}
< /code>
Ich bin mehr Sorge um True und False, wenn nicht null userInfo es ist, hier nicht meine erste Priorität zu erhalten,
Ich habe eine UI-Logik, basierend auf dem.postValue(true or false)< /code>
Auch wenn der Typ typeSafe.success () < /code> Die Daten zurückgeben, gibt ich null < /code>
weiter in UI habe ich wenn () < /code> Ausdruck in Beobachter < /code> < /p>
Mainaktivität: < /p>
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
lateinit var mainViewModel: MainViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
supportActionBar?.hide()
viewModelInitializor()
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
private fun viewModelInitializor() {
mainViewModel = ViewModelProvider(this,
MainViewModelProvider(
Repository(DBAccess(this))
)
).get(MainViewModel::class.java)
}
}
< /code>
Fragmenta: < /p>
class FragmentA : Fragment(R.layout.fragment_a) {
private val TAG = "FragmentA"
private lateinit var binding: FragmentABinding
lateinit var mainViewModel: MainViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mainViewModel = (activity as MainActivity).mainViewModel
mainViewModel.availabilityCheckforUserInfo()
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding = FragmentABinding.bind(view)
mainViewModel.mutableUserDataFound.observe(viewLifecycleOwner, Observer { result ->
when (result) {
is TypeSafe.Loading -> {
// show progress bar animation
loadingAnimationConfig(View.VISIBLE)
}
is TypeSafe.Success -> {
Log.d(TAG, "success result = ${result.data}") // D success result = null
result.data?.let {
if (it) { // if available
Log.d(TAG, "if true $it")
// stop progess bar
mainViewModel.login()
loadingAnimationConfig(View.GONE)
} else { // if not available
Log.d(TAG, "else $it")
loadingAnimationConfig(View.GONE)
findNavController().navigate(R.id.inputFragment)
}
}
}
is TypeSafe.Error -> {
showToast(
msg = "Error: ${result.message}",
dursn = Toast.LENGTH_LONG
)
}
}
})
}
}
< /code>
result.data?.let {< /code> Dies wird vorübergehend hinzugefügt.Log.d(TAG, "success result = ${result.data}")< /code>
// D success result = null
[code]TypeSafe< /code> ist eine versiegelte Klasse, die 3 Subklassen hat,
Loading()[/code],[code]Success(data: T?)[/code],[code]Error(message: String?)< /code> < /p> Dies sind Live -Daten für boolean:
val mutableUserDataFound : MutableLiveData = MutableLiveData()< /code>
Jetzt, während Sie diesen Spaß verwenden: < /p> fun availabilityCheckforUserInfo() = viewModelScope.launch { mutableUserDataFound.postValue(TypeSafe.Loading()) try { val userinfo = repository.getUserInfo() if (userinfo != null) { mutableUserDataFound.postValue(TypeSafe.Success(true)) } else { mutableUserDataFound.postValue(TypeSafe.Success(false)) } } catch (e: Exception) { mutableUserDataFound.postValue(TypeSafe.Error(e.message)) } } < /code> Ich bin mehr Sorge um True und False, wenn nicht null userInfo es ist, hier nicht meine erste Priorität zu erhalten,
Ich habe eine UI-Logik, basierend auf dem.postValue(true or false)< /code>
Auch wenn der Typ typeSafe.success () < /code> Die Daten zurückgeben, gibt ich null < /code>
weiter in UI habe ich wenn () < /code> Ausdruck in Beobachter < /code> < /p>
Mainaktivität: < /p> class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding
lateinit var mainViewModel: MainViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) supportActionBar?.hide() viewModelInitializor() binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
} private fun viewModelInitializor() { mainViewModel = ViewModelProvider(this, MainViewModelProvider( Repository(DBAccess(this)) ) ).get(MainViewModel::class.java) } } < /code> Fragmenta: < /p> class FragmentA : Fragment(R.layout.fragment_a) { private val TAG = "FragmentA" private lateinit var binding: FragmentABinding
lateinit var mainViewModel: MainViewModel
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mainViewModel = (activity as MainActivity).mainViewModel mainViewModel.availabilityCheckforUserInfo() }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState)
binding = FragmentABinding.bind(view)
mainViewModel.mutableUserDataFound.observe(viewLifecycleOwner, Observer { result -> when (result) { is TypeSafe.Loading -> { // show progress bar animation loadingAnimationConfig(View.VISIBLE) } is TypeSafe.Success -> { Log.d(TAG, "success result = ${result.data}") // D success result = null result.data?.let { if (it) { // if available Log.d(TAG, "if true $it") // stop progess bar mainViewModel.login() loadingAnimationConfig(View.GONE) } else { // if not available Log.d(TAG, "else $it") loadingAnimationConfig(View.GONE) findNavController().navigate(R.id.inputFragment) } } } is TypeSafe.Error -> { showToast( msg = "Error: ${result.message}", dursn = Toast.LENGTH_LONG ) } } }) }
}
< /code> result.data?.let {< /code> Dies wird vorübergehend hinzugefügt.Log.d(TAG, "success result = ${result.data}")< /code>
// D success result = null[/code] Dies stammt von Logcat
Ich entwerfe einen Folgekurs für AP Informatik A (was in Java unterrichtet wird). Mein Ziel ist es, Highschool -Senioren beizubringen, wie eine einfache Programmiersprache von Grund auf implementiert...
Ich habe ein ASP.NET Core 8-Web-API-Projekt erstellt.
Aber wenn ich das Projekt ausführe, erhalte ich diese Fehlermeldung:
System.MissingMethodException : 'Methode nicht gefunden: 'Boolean...
Ich versuche, einen Präfixtextwert für ein Projekt zu erstellen. Ich verwende dafür das Schaltergehäuse. Wenn der Benutzer das entsprechende Optionsfeld auswählt, sollten wir den Präfixwert angeben....
Ich versuche, einen Benutzer einzugeben, unabhängig davon def likes_spicyfood():
spicyfood = bool(input( Do you like spicy food? True or False? ))
if spicyfood == ( True ):
print( True )
if spicyfood...