小编MHo*_*gge的帖子

Firebase将地图解析为列表

我正在尝试设置一个通用类来从Firebase检索数据,但我仍然坚持解析部分.

override fun onDataChange(snapshot: DataSnapshot) {
    try {
        val data: T? = snapshot.getValue(dataType)
        onDataReadFromDatabase(data, d, snapshot, changeListener)
    } catch(e: Exception) {
        d.resumeWithException(e)
    }
} 
Run Code Online (Sandbox Code Playgroud)

T是我的数据类型,dataType是Class<T>.这适用于平面数据结构,但是当它list的子T节点失败时Expected a List while deserializing, but got a class java.util.HashMap.

失败的数据结构示例:

{
    "id": "xxx",
    "name": "test",
    "items": {
        "a": {"name": "itemA"},
        "b": {"name": "itemB"},
        "c": {"name": "itemC"},
        "d": {"name": "itemD"}
    }
}
Run Code Online (Sandbox Code Playgroud)

使用这样的模型:

data class ItemList(val id: String, val name: String, val items: MutableList<Item>) { …
Run Code Online (Sandbox Code Playgroud)

parsing android kotlin firebase firebase-realtime-database

6
推荐指数
1
解决办法
198
查看次数

流中的 NGINX 位置指令

我已经在我的一台服务器上安装了 Nginx,以便用作Rancher应用程序的负载均衡器。\n我的配置基于此处找到的配置: https: //rancher.com/docs/rancher/v2。 x/en/安装/ha/create-nodes-lb/nginx/

\n\n

所以我的配置是:

\n\n
load_module /usr/lib/nginx/modules/ngx_stream_module.so;\n\nworker_processes 4;\nworker_rlimit_nofile 40000;\n\nevents {\n    worker_connections 8192;\n}\n\nstream {\n    upstream rancher_servers_http {\n        least_conn;\n        server <ipnode1>:80 max_fails=3 fail_timeout=5s;\n        server <ipnode2>:80 max_fails=3 fail_timeout=5s;\n        server <ipnode3>:80 max_fails=3 fail_timeout=5s;\n    }\n    server {\n        listen     80;\n\n        proxy_pass rancher_servers_http;\n    }\n\n    upstream rancher_servers_https {\n        least_conn;\n        server <ipnode1>:443 max_fails=3 fail_timeout=5s;\n        server <ipnode2>:443 max_fails=3 fail_timeout=5s;\n        server <ipnode3>:443 max_fails=3 fail_timeout=5s;\n    }\n    server {\n        listen     443;\n        proxy_pass rancher_servers_https;\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的配置按预期工作,但我最近在集群上安装了Nextcloud 。这给了我以下错误:

\n\n
\n
    \n
  • 您的 Web 服务器未正确设置以解析 \xe2\x80\x9c/.well-known/caldav\xe2\x80\x9d。更多信息可以在文档中找到。\n

  • \n
  • 您的 …

nginx

6
推荐指数
1
解决办法
7986
查看次数

包含布局中的 NextFocus editText

我创建了一个包含我的标签和我的 editText 的简单布局。多次包含此布局以创建表单。

但是使用这种方法,“nextFocus”功能无法正常工作,我找不到解决方案。我需要给出下一个editText的id,但因为它在一个包含布局中,id与当前的editText相同。

他们是通过仅使用 xml 解决方案来实现这一目标的方法吗?我特别想到数据绑定。

这是我的布局:

包括布局:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<data>

    <variable
        name="viewModel"
        type="viewModels.StringDataTypeViewModel"/>

    <variable
        name="nextFocus"
        type="Integer"/>

</data>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:padding="10dp"

    android:orientation="horizontal"
    android:gravity="center_vertical">

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"

        tools:text="Nom de famille : "
        android:text="@{viewModel.label}"

        android:singleLine="true"
        android:ellipsize="end"/>

    <EditText android:id="@+id/value"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"

        android:textSize="@dimen/patient_detail_edittext_text_size"

        android:inputType="textPersonName"

        android:ellipsize="end"
        tools:text="Dupont"
        android:text="@={viewModel.value}"
        android:textColor="@android:color/widget_edittext_dark"

        android:clickable="@{viewModel.editable}"
        android:cursorVisible="@{viewModel.editable}"
        android:focusable="@{viewModel.editable}"
        android:focusableInTouchMode="@{viewModel.editable}"

        android:background="@{viewModel.editable ?  @android:drawable/edit_text : @drawable/empty_drawable}"

        android:nextFocusForward="@id/value"/>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

表格布局:

<LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"

                android:orientation="vertical"
                android:visibility="@{viewModel.editable ? View.VISIBLE: View.GONE}">

                <include layout="@layout/string_data_type_layout"
                    app:viewModel="@{viewModel.familyNameViewModel}" />

                <include layout="@layout/string_data_type_layout"
                    app:viewModel="@{viewModel.givenNameViewModel}" />

                <include layout="@layout/string_data_type_layout"
                    app:viewModel="@{viewModel.patientCodeViewModel}" …
Run Code Online (Sandbox Code Playgroud)

android focus android-layout android-edittext android-databinding

5
推荐指数
1
解决办法
542
查看次数

运行systrace会出现"Windows上不支持preexec_fn"错误

我正在尝试使用此处和此处所述的Android的Systrace功能,但是当我运行上述链接中描述的命令行时,它会给我这个错误:

File "C:\Python27\lib\subprocess.py", line 664, in __init__
raise ValueError("preexec_fn is not supported on Windows "
ValueError: preexec_fn is not supported on Windows platforms
Run Code Online (Sandbox Code Playgroud)

上述命令行是:

python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
Run Code Online (Sandbox Code Playgroud)

我不是一个python开发者,所以我对它没有任何线索,谷歌对我帮助不大,任何想法?

- 我在Windows 10计算机上运行.

python android systrace

5
推荐指数
1
解决办法
1891
查看次数

将 AsyncLayoutInflater 与 DataBinding 结合使用

我目前使用该DataBindingUtil.inflate(inflater, layoutId, parent, attachToParent)方法膨胀我的大部分布局。

但是我看到他们是一个AsyncLayoutInflater因为Support Library revision 24它允许通货膨胀发生在一个单独的线程上。我想在我的应用程序的某些部分使用这种机制,但我不想放弃使用databinding。

DataBindingUtil不包含任何方法,如inflateAsync(). 但它是否计划增加对此的支持?或者他们是将AsyncLayoutInflater和 的使用结合起来的一种方式databinding?

我试图使用AsyncLayoutInflater里面的inflate方法DataBindingUtil但实际上AsyncLayoutInflater不是原始LayoutInflater.

谢谢阅读!

android asynchronous layout-inflater android-databinding

5
推荐指数
1
解决办法
1798
查看次数

onActivityResult 和 FLAG_ACTIVITY_NEW_TASK:解决方法?

这是我的场景:我有一系列Activity. 我为那些Activity会断开用户连接的超时设置了超时,以防用户暂时处于非活动状态。但我想将用户重定向到最后一个屏幕以防他登录

当我断开用户连接时,我正在调用它:

public void restartFromLoginActivity(boolean saveCurrentState, String previousLoggedUserId) {
    Activity currentActivity = getCurrentActivity();
    Intent intent = new Intent(CERHISApplication.this, LoginActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

    if(saveCurrentState && currentActivity != null){
        Bundle extras = new Bundle();
        extras.putString(ApplicationController.KEY_PREVIOUSLY_LOGGED_USER_ID, previousLoggedUserId);
        intent.putExtras(extras);
        currentActivity.startActivityForResult(intent, ApplicationController.RC_LOGIN);
    }
    else
        startActivity(intent);

    if(currentActivity != null)
        currentActivity.finish();
}
Run Code Online (Sandbox Code Playgroud)

在我的LoginActivity检查中,userId 是否相同,如果相同,我尝试通过onActivityResult如下方式调用重定向用户:

if (getCallingActivity() != null && userId.equals(previouslyLoggedUserId)) 
    setResult(RESULT_OK);
else
    ApplicationController.startHomeActivity(this);
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为我FLAG_ACTIVITY_NEW_TASK根据自己的意图设置了标志。正如文档中所说:

当调用者从正在启动的活动中请求结果时,不能使用此标志。

据我了解, anActivity只能Activity从任务中接收结果。但是我需要设置这个标志,否则用户可以Activity stack通过按后退按钮返回。 …

android activity-stack android-intent android-activity

5
推荐指数
1
解决办法
442
查看次数

Angular翻译插件未启动

我已经安装了Angular Translator插件,但是它似乎不起作用。

  • 我尝试使用默认快捷方式:“ ctrl + alt + T”;
  • 我尝试将快捷方式更改为“ alt + t”;
  • 我尝试通过命令提示符使用它: 在此处输入图片说明

但是没有任何反应,我也没有收到任何错误消息。

我正在使用VSCode 1.38.1和Angular 8。

知道为什么我无法使用此插件吗?我还将采用一种灵活的替代方法来回答我的问题。

非常感谢。

visual-studio-code angular-i18n angular

5
推荐指数
1
解决办法
152
查看次数

证书对 ingress.local 有效,对 gitlab.mydomain 无效

我是 Kubernetes 新手。

  • 我使用 RKE(用于创建 k8 集群的 rancher 工具)安装了一个全新的 Kubernetes 集群。
  • 我添加了 gitlab 图表 ( https://charts.gitlab.io/ ) 并启动它。
  • 我设法解决了与持久存储等有关的几个问题。

但我现在陷入了最后一个问题:podgitlab-runner失败并显示以下日志:

ERROR: Registering runner... failed runner=Mk5hMxa5 status=couldn't execute POST against https://gitlab.mydomain.com/api/v4/runners: Post https://gitlab.mydomain.com/api/v4/runners: x509: certificate is valid for ingress.local, not gitlab.mydomain.com
PANIC: Failed to register this runner. Perhaps you are having network problems
Run Code Online (Sandbox Code Playgroud)

证书的描述使用kubectl describe certificate gitlab-gitlab-tls -n gitlab:

Name:         gitlab-gitlab-tls
Namespace:    gitlab
Labels:       app=unicorn
              chart=unicorn-2.4.6
              heritage=Tiller
              io.cattle.field/appId=gitlab
              release=gitlab
Annotations:  <none>
API Version:  certmanager.k8s.io/v1alpha1
Kind:         Certificate
Metadata: …
Run Code Online (Sandbox Code Playgroud)

gitlab kubernetes

5
推荐指数
1
解决办法
1万
查看次数

BottomSheetDialogFragment setupDialog 仅限于库组

我正在使用支持库中的BottomSheetDialogFragment,它警告我该函数setupDialog()只能在库组中使用。但这个函数是我初始化对话框的地方:

@Override
public void setupDialog(final Dialog dialog, int style) {
    super.setupDialog(dialog, style);
    FragmentArgs.inject(this);

    dialog.setOnShowListener(dialogINterface -> {
        if(dialog.getWindow() != null) {
            dialog.getWindow().setLayout(
                    ViewGroup.LayoutParams.WRAP_CONTENT,
                    ViewGroup.LayoutParams.MATCH_PARENT);
        }
    });

    BottomSheetStatisticsExportBinding binding = DataBindingUtil.inflate(
            LayoutInflater.from(getContext()),
            R.layout.bottom_sheet_statistics_export,
            null,
            false
    );

    View contentView = binding.getRoot();
    dialog.setContentView(contentView);

    CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) ((View) contentView.getParent()).getLayoutParams();
    CoordinatorLayout.Behavior behavior = params.getBehavior();

    if( behavior != null && behavior instanceof BottomSheetBehavior )
        ((BottomSheetBehavior) behavior).setBottomSheetCallback(bottomSheetBehaviorCallback);

    for (Export export : exports)
        binding.flexbox.addView(new ExportItemView(getContext(), export));
}
Run Code Online (Sandbox Code Playgroud)

警告是因为我使用的是 super 方法。但我该怎么办呢?我应该将我的代码移到另一个函数中(onCreateDialog(),onResume()...?),我应该删除对 …

android bottom-sheet

4
推荐指数
1
解决办法
4266
查看次数

safeUnbox()不能被反转

我正在尝试消除我的Android应用程序的所有警告,其中之一就是:

viewModel.value是一个盒装字段,但需要取消装箱才能执行android:checked.这可能会导致NPE,因此数据绑定将安全地取消它.您可以更改表达式并使用safeUnbox()显式包装viewModel.value以防止出现警告

其中value是ObservableField来自超类的泛型:

public abstract class BaseDataTypeViewModel<T> extends BaseObservable  {
    public final ObservableField<T> value = new ObservableField<>();
    ...
}
Run Code Online (Sandbox Code Playgroud)

并在某处作为一个扩展Boolean:

public class CheckBooleanDataTypeViewModel extends BaseDataTypeViewModel<Boolean> {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我看到数据绑定 - safeUnbox警告发生警告,因为这是一个Boolean而不是一个boolean,所以我试图添加这个:android:checked="@={safeUnbox(viewModel.value)}"而不是android:checked="@={viewModel.value}"然后我得到一个错误说我无法反转safeUnbox()方法.

****/数据绑定错误****msg:表达式android.databinding.DynamicUtil.safeUnbox(viewModelValue)无法反转:方法safeUnbox没有反转,必须在方法中添加@InverseMethod注释才能指示在双向绑定表达式中使用它时应该使用哪个方法

我正确地理解了2个分离的问题,但是我必须忍受警告以避免错误,或者他们是避免警告和错误的解决方案吗?这@InverseMethod是怎么回事?我没有设法添加这个注释,因为该方法来自android包.

android warnings android-databinding

4
推荐指数
1
解决办法
6194
查看次数