实际上,在我的 RecyclerView Adapter 中,我通过执行以下操作来设置背景颜色
holder.itemView.setBackgroundColor(Color.parseColor(currentItem.getSfondo()));
Run Code Online (Sandbox Code Playgroud)
解析的颜色是从数据库给出的,直到这一刻一切正常,但现在我已经在我的 cardView 中添加了一个底部栏,我将在其中显示价格,这样我就可以从 itemView 获得相同的颜色,所以颜色。 parseColor(currentItem.getSfondo()) 但通过添加一些 alpha 或 idk 使其更轻,以便用户能够将文本与价格分开。
所以类似的东西
实际上我使用Output IntentfromDataWedge将解码后的数据发送到我的应用程序,因此在应用程序中记录了一个 BroadcastReceiver 来获取解码后的数据
private BroadcastReceiver myBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Objects.equals(action, getResources().getString(R.string.activity_intent_filter_action))) {
// Received a barcode scan
try {
displayScanResult(intent);
} catch (Exception e) {
// Catch if the UI does not exist when we receive the broadcast
}
}
}
};
Run Code Online (Sandbox Code Playgroud)
问题是是否可以在不使用 EMDK 的情况下以某种方式禁用扫描仪?如果满足以下条件,我将能够禁用扫描:
if(Alerts.dialogError != null && Alerts.dialogError.isShowing()){
// Here i should block the scanner
}
Run Code Online (Sandbox Code Playgroud) 我试图让我的BottomSheetDialogFragment打开时全屏显示,问题是在任何情况下都会Dialog显示屏幕高度的一半。
我尝试将 peekHeight 设置为以下内容:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
dialog?.setOnShowListener { dialog ->
val bottomSheetBehavior: BottomSheetBehavior<*> = (dialog as BottomSheetDialog).behavior
bottomSheetBehavior.peekHeight = Resources.getSystem().displayMetrics.heightPixels
bottomSheetBehavior.state = BottomSheetBehavior.STATE_EXPANDED
}
}
Run Code Online (Sandbox Code Playgroud)
但Dialog显示的内容与没有 peekHeight 的情况相同。
然后我尝试添加android:theme="@android:style/Theme.Material.Light.NoActionBar.Fullscreen"
在我的BottomSheet布局中但仍然有相同的结果。
实际上,我是 React 的新手,我正在尝试制作一个简单的条形码扫描仪,它在警报中显示扫描的条形码,在警报中按“确定”后,用户应该能够扫描另一个条形码。
问题是条形码会被连续扫描,当警报出现时,它会隐藏并每秒显示一次警报。
我试图做这样的事情来只显示一次警报,如果按下 OK 能够再次显示警报,但只有在按下 OK 但没有效果的情况下..
onBarCodeRead = (e) => {
if(!this.alertPresent){
this.alertPresent = true;
Alert.alert(
"Barcode type is " + e.type,
"Barcode value is " + e.data,
[
{text: 'OK', onPress: () => this.alertPresent = false;},
],
{cancelable: false},
);
}
}
Run Code Online (Sandbox Code Playgroud)
这是 Barcode.JS 的完整代码
import React, { Component } from 'react';
import { Button, Text, View,Alert } from 'react-native';
import { RNCamera } from 'react-native-camera';
import BarcodeMask from 'react-native-barcode-mask';
class ProductScanRNCamera extends Component {
constructor(props) …Run Code Online (Sandbox Code Playgroud) 我的 Android 项目中有一个 MutableList,其中添加了一个名为 Articolo 的对象,然后当将新项目添加到该列表时,我需要检查是否存在具有相同 ID 的项目,如果存在,我需要更新其数量。
问题是我试图使用 MutableList.find 来查找具有相同 ID 的对象,当我找到它时,我只需将数量添加到现有数量,但它仍然是不可变的。
这是我的 Articolo.kt
data class Articolo(var barcode: String, var qta: Int) {
constructor() : this ("", 0)
}
Run Code Online (Sandbox Code Playgroud)
这是我的函数,我将数据添加到 MutableList
private var articoli = mutableListOf<Articolo>()
private fun addBarcode(barcode: String, qta: Int) {
if (barcode.isEmpty()) {
txtBarcode.requestFocus()
return;
}
articoli.find{
it.barcode == barcode
}?.qta?.plus(qta) ?:
articoli.add(Articolo(barcode, qta))
}
Run Code Online (Sandbox Code Playgroud)
因此,如果我添加第一个对象,例如条形码:1111,数量:1,然后添加另一个相同的对象,而不是拥有数量为 2 的一个元素数组,我仍然拥有数量 1..
我有一个包含一个活动和两个片段的应用程序,在第一个片段中,我应该能够将数据插入数据库,在第二个片段中,我应该能够在 recyclerView 中看到添加的项目。
所以我制作了数据库、我的 RecyclerView 适配器和 ViewModel,
现在的问题是我应该如何管理这一切?
我应该在活动中初始化 ViewModel 并从片段中以某种方式调用它以使用插入吗?
我应该在两个片段中初始化视图模型两次吗?
我的代码如下所示:
让我们假设我在我的 Activity 中初始化了 viewholder:
class MainActivity : AppCompatActivity() {
private val articoliViewModel: ArticoliViewModel by viewModels {
ArticoliViewModelFactory((application as ArticoliApplication).repository)
}
}
Run Code Online (Sandbox Code Playgroud)
然后我的 FirstFragments 方法,我应该使用 viewModel 将数据添加到数据库中,如下所示:
class FirstFragment : Fragment() {
private val articoliViewModel: ArticoliViewModel by activityViewModels()
private fun addArticolo(barcode: String, qta: Int) { // function which add should add items on click
// here i should be able to do something like this
articoliViewModel.insert(Articolo(barcode, qta))
} …Run Code Online (Sandbox Code Playgroud)