我正在尝试WorkManager在 Android 中使用,因为到目前为止我已经使用AsyncTask. 我正在尝试更新Room database. 我创建了一个类Repository来在后台执行该过程,但我不知道这是否是正确的编码方式。我也有点困惑如何在 userViewModel 中调用该方法。
这是我的代码:
在存储库中:
inner class Test(ctx: Context, params: WorkerParameters) : Worker(ctx, params) {
override fun doWork(): Result {
fun updateUser(userId : Int , userName :String , userLastname: String){
userDao.updateUser(userId, userName, userLastname)
}
return Result.success()
}
}
Run Code Online (Sandbox Code Playgroud)
在视图模型中:
private val workManager: WorkManager = WorkManager.getInstance()
fun updateUser(userID: Int, userName: String, userLastname: String) {
workManager.enqueue(OneTimeWorkRequest.from(Repository.Test::class.java))
}
Run Code Online (Sandbox Code Playgroud)
也许这不是使用 WorkManager 的正确方法,所以如果有人能帮助我,我将不胜感激。
android kotlin android-room android-jetpack android-workmanager
如何实现 JetPack Compose BottomSheet 状态更改的回调/侦听器机制?
类似于:
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
if (newState == BottomSheetBehavior.STATE_COLLAPSED && mIsCollapsedFromBackPress){
}
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
}
});
Run Code Online (Sandbox Code Playgroud)
正如我们过去在 Java/Kotlin 中所做的那样。
现在,我将其作为 lambda 传递给另一个需要关闭底页的可组合项。
val closeSheet: () -> Unit = {
scope.launch {
modalState.hide()
}
}
Run Code Online (Sandbox Code Playgroud)
但我想得到底页已完全折叠的回调,我可以继续我的任务。
我面临的实际问题: 我正在单击按钮将可组合项转换为位图。该按钮位于 BottomSheet 内部,需要转换的可组合项位于 BottomSheet 后面。因此,有时底页也会出现在位图中。我只想在底页完全折叠时触发该过程。
我在 SO 上找到了这个答案,但问题仍然是关于回调。不知道如何使用它。
android bottom-sheet android-jetpack android-jetpack-compose
我的应用程序中有一个微调器,我实现如下:
//Setup spinner
spinner = (AppCompatSpinner) findViewById(R.id.toolbar_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.sections, R.layout.spinner_item);
adapter.setDropDownViewResource(R.layout.spinner_list_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
mViewPager.setCurrentItem(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
mViewPager.setCurrentItem(0);
}
});
Run Code Online (Sandbox Code Playgroud)
这适用于我的手机运行API级别19(4.4.2),但在Marshmallow,API级别23(6.0)上运行,从不调用onItemSelected.
我已尝试使用android.widget.Spinner和android.support.v7.widget.AppCompatSpinner同样的结果.
知道为什么吗?
@Entity
data class Products(
val id:String,
val title: String,
val description: String,
val imgUrl: String,
val usageRules : List<String>, //what happens here?
)
Run Code Online (Sandbox Code Playgroud)
我正在玩 ROOM for android,我看到的大多数示例都没有解释如何创建一个包含 arrayList 的实体表。
有 @Embedded 似乎只嵌套另一个对象,但我试图嵌套一个名为 usageRules 的对象列表
我需要创建一个单独的使用规则表吗?问题是,每个使用规则都可以包含在上面的多个产品中,并且一个产品可以定义多个使用规则,因此它是多对多的关系。
ROOM 可以实现吗?
我知道在 Realm 中,我可以简单地将 UsageRule List<> 转换为 RealmList<>。ROOM 有等价物吗?
另一种选择是因为它只是一个字符串列表。我可以简单地创建一个名为 allUsage 的新表实体字段,该字段使用分隔符存储特定产品上的所有使用规则,然后当我想再次从 ROOM 构造数据对象时,我可以通过执行 allUsage.Split(.. )
仍然宁愿用另一种方式来做,因为我可能会遇到一个场景,其中使用规则不仅仅是一个字符串列表,而是一个对象列表......
android android-room android-architecture-components android-jetpack
android开发新手。当我们分发.apk文件时,接收方可以提取google-services.json并使用我们的数据库或身份验证数据库。
我看 我有apk文件,是否可以从apk获取android studio项目? 和google-services.json是机密的吗? 并且可以反编译Android .apk文件吗? 但不要直接联系
我有带有复合主键的表。我可以将其中一个文件设为自动生成吗?
Secenario :我有一个teacher table包含字段 techerId、姓名、性别、角色、部门、等级的字段,它具有由角色、部门和等级组成的复合主 ID。如何使teacherid自动生成?
我研究过这方面的文章,但似乎没有任何效果。我正在尝试使用模拟器运行代码。模拟器上的所有数据都会被擦除。
当我在模拟器上运行代码时,出现错误:
当我单击“确定”时。我收到此错误:
我不确定如何删除此消息。有什么帮助吗?
到目前为止所做的事情:
我正在尝试Charles Proxy在Samsung s8运行时启用SSL ,Android Nougat但不知道如何操作。
在Nougat我能够在我的设备上成功记录多个应用程序的查尔斯会话之前。
已按照此和此设置所有内容,但这是在 Android 中启用 Charles 时要遵循的第一步。我的用例与其他问题中的用例不同,因为我正在监视第三方应用程序并且我没有任何AndroidManifest.xml或res目录来创建network_configuration文件。
也经历了网络安全配置和做什么,但不知道如何。
有没有办法为我设备中的所有第三方应用程序启用代理?有什么方法可以将此网络配置添加到设备本身而不是单个应用程序?
感谢帮助。
我有以下 TextInputEditText
<com.google.android.material.textfield.TextInputLayout
android:focusableInTouchMode="true"
android:id="@+id/from_textinput"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:fontFamily="sans-serif"
android:hint="@string/from"
android:textColor="@color/colorDarkGrey"
android:textColorHint="@color/colorDarkGrey"
android:textSize="12sp"
android:textStyle="normal"
android:visibility="gone"
app:boxCornerRadiusBottomEnd="5dp"
app:boxCornerRadiusBottomStart="5dp"
app:boxCornerRadiusTopEnd="5dp"
app:boxCornerRadiusTopStart="5dp"
app:boxStrokeColor="@color/colorPrimary"
app:boxStrokeWidth="3dp"
app:layout_constraintEnd_toStartOf="@+id/to_textinput"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/doNotDisturbCheckBox">
<com.google.android.material.textfield.TextInputEditText
android:onClick="@{() -> viewModel.openFromTimePickerClicked()}"
android:focusableInTouchMode="true"
android:id="@+id/from_textedit"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:editable="false"
android:text="@{viewModel.doNotDisturbFrom}"
android:textSize="16sp" />
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
第一次触摸没有触发onClick的问题,只有在我第二次按下时才会调用
第一次点击使其聚焦第一次点击触发 onClick
谁能告诉我如何从第一次触发点击
我正在使用 xamarin android datepicker 对话框片段。但试图在今天和今天 + 3 天之间启用日期。它不起作用。它甚至不适用于最小日期选项。
public static readonly string TAG = "X:" + typeof (DatePickerFragment).Name.ToUpper();
Action<DateTime> _dateSelectedHandler = delegate { };
public void OnDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
// Note: monthOfYear is a value between 0 and 11, not 1 and 12!
DateTime selectedDate = new DateTime(year, monthOfYear +1, dayOfMonth);
Log.Debug(TAG, selectedDate.ToLongDateString());
_dateSelectedHandler(selectedDate);
}
public static DatePickerFragment NewInstance(Action<DateTime> onDateSelected)
{
DatePickerFragment frag = new DatePickerFragment();
frag._dateSelectedHandler = onDateSelected;
return frag;
}
public override …Run Code Online (Sandbox Code Playgroud) android ×10
android-room ×3
android-architecture-components ×1
apk ×1
bottom-sheet ×1
google-api ×1
kotlin ×1
onclick ×1
sqlite ×1
ssl ×1