小编Ósc*_*car的帖子

是否有必要在每个活动中初始化Firebase Analytics?

我不想将任何特殊日志发送到Firebase Analytics控制台,只需检查哪些屏幕是用户花费更多时间等等.

当我使用AnalyticsTracker它时必须在任何地方添加它,所以你可以用Tracker.xml文件设置每个屏幕的具体名称.

官方文件说:

将Firebase Analytics的依赖项添加到您的应用级build.gradle文件:

compile 'com.google.firebase:firebase-core:9.2.1'

在活动顶部声明FirebaseAnalytics对象:

private FirebaseAnalytics mFirebaseAnalytics;

然后在onCreate()方法中初始化它:

mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);

所以我想我在每个想要获取数据的页面都这样做,不是吗?

android android-activity firebase firebase-analytics

25
推荐指数
3
解决办法
8645
查看次数

Android - 更改READ_PHONE_STATE权限请求消息

我正在使用Android Marshmallow READ_PHONE_STATE权限,我想更改权限请求中显示的文本.

默认情况下显示:

允许[应用程序名称]拨打和管理电话?

但我正在用它来获取device idsim serial number,所以我认为最好更改请求消息.有谁知道怎么做(一些特殊的功能或什么)?

或者我只需要实现一个独立Dialog的?

非常感谢你.

android android-permissions android-6.0-marshmallow runtime-permissions

7
推荐指数
1
解决办法
2887
查看次数

Google SignInButton 的 onClick 无法使用 DataBinding

当我尝试onClick在我的 Google 中设置方法时SignInButton

android:onClick="@{() -> viewModel.onGoogleLoginClick()}"

我总是收到这个错误:

发现数据绑定错误。

****/ 数据绑定错误 ****msg: 找不到正确的 android:onClick 回调类。尝试 android.view.View 但它有 0 个抽象方法,应该有 1 个抽象方法。

文件:/Users/user/Android/project/app/src/main/res/layout/activity_login.xml loc:53:31 - 53:66 ****\ 数据绑定错误****

这是我的代码:

活动登录.xml

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".ui.login.LoginActivity">
    <data>
        <import type="android.view.View" />
        <variable
            name="viewModel"
            type="com.example.myapp.ui.login.LoginViewModel" />
    </data>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:padding="@dimen/default_layout_padding">

        <EditText
            android:id="@+id/login_name_editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/login_username_hint"
            android:inputType="text"
            android:text="@{viewModel.mEmail}" />

        <EditText
            android:id="@+id/login_pass_editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/login_name_editText"
            android:hint="@string/login_password_hint"
            android:inputType="numberPassword"
            android:text="@{viewModel.mPassword}" />

        <Button
            android:id="@+id/login_login_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/login_pass_editText"
            android:onClick="@{() -> viewModel.onServerLoginClick()}"
            android:text="@string/login_login_button_text" …
Run Code Online (Sandbox Code Playgroud)

data-binding android button android-mvvm android-livedata

7
推荐指数
2
解决办法
1674
查看次数

带有新行的 AlertDialog 消息。(\n 不起作用。)

我需要AlertDialog在 Android 上的a 中使用断线。我已经尝试过使用 "\n" 字符,但它不起作用。我没有看到“\n”字符,但文本不会换行。

有什么帮助吗?

android dialog line-breaks

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

单击 RecyclerView 中属于 CardView 的 ImageButton

解决了

\n\n

我已经修复了它,混合了你的答案,所以我决定写在这里。

\n\n

关键是ViewHolder构造函数:

\n\n

我已经删除了setOnClickListener()onClick()方法,并且我\xc2\xb4ve在我的ObjectAdapter.java.

\n\n
public static class ViewHolder extends RecyclerView.ViewHolder{\n\n     public ViewHolder(View itemView) {\n            super(itemView);\n            card_first_btn.setOnClickListener(new View.OnClickListener() {\n                @Override\n                public void onClick(View v) {\n                    int position = getAdapterPosition();\n                    Toast.makeText(v.getContext(), object.get(position).getName(), Toast.LENGTH_SHORT).show();\n                }\n            });\n            card_second_btn.setOnClickListener(new View.OnClickListener() {\n                @Override\n                public void onClick(View v) {\n                    Toast.makeText(v.getContext(), "Forward button", Toast.LENGTH_SHORT).show();\n                }\n            });\n     }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这就是\xc2\xb4 的全部。班级的其余部分都是一样的。

\n\n

ObjectFragment.java

\n\n
public class ObjectFragment extends Fragment {\n\n    public void ObjectFragment() {\n        // …
Run Code Online (Sandbox Code Playgroud)

java android fragment android-recyclerview

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

Groovy:在这些情况下如何替换 leftShift 运算符?

我在我的下一个插件调用build.gradle

apply plugin: 'com.company.gradleplugins.plugin'
Run Code Online (Sandbox Code Playgroud)

当我编译时,Jenkins 警告我关于 Gradle 5.0 及其弃用:

Task.leftShift(Closure) 方法已被弃用,并计划在 Gradle 5.0 中删除。请改用 Task.doLast(Action)。

在 build_c4218hywg.run(/Users/user/Documents/project/projectfolder/app/build.gradle:12)

标准替换很清楚(使用doLast替代<<),但我发现了一些我不知道如何更新的操作(整个项目不仅是我的)。

所以,在插件中,我有一些:

configJSON = mainProperties.getConfig() << buildProperties.getConfig()

imageNames << image.getFileName()

for (int i = 0; i < m.groupCount(); i++) {
    list << m[i][1]
}
Run Code Online (Sandbox Code Playgroud)

等等。目前这样做的方法是什么?

groovy deprecated

3
推荐指数
1
解决办法
3784
查看次数

Picasso setIndicatorsEnabled(true)不起作用

我正在尝试setIndicatorsEnabled(true)在我的Picasso调用中添加该选项,但它不起作用.

这是电话:

Picasso.with(context)
    .load(image)
    .placeholder(R.drawable.placeholder_img)
    .error(R.drawable.error_img)
    .into(imageView);
Run Code Online (Sandbox Code Playgroud)

如果我.setIndicatorsEnabled(true)以前写过.load(image),没有任何作用.如果我写.setIndicatorsEnabled(true).into(imageView),.setIndicatorsEnabled(true)不起作用.

毕加索版本是2.5.2(最后一个).

有什么建议吗?

android image picasso

2
推荐指数
1
解决办法
2880
查看次数

java.lang中.RuntimeException找不到Retrofit注释.(参数#3)

我正在尝试更新这个RetroFit + Otto教程,所以我的代码更新是:

IWeather.java

RetroFit 2. +不允许返回void,所以而不是void getWeather(...)我添加Call<Weather> getWeather(...).

public interface IWeather {

    @GET("/{latitude},{longitude}")
    Call<Weather> getWeather(@Path("latitude") String latitude,
                             @Path("longitude") String longitude,
                             Callback<Weather> callback);
} 
Run Code Online (Sandbox Code Playgroud)

ForecastClient.java

RetroFit 2. +已经改变了他的构造函数,所以new ForecastClient有下一个形式.方法的IllegalArgumentException要点weather.getWeather(...).

public class ForecastClient {

    private static final String BASE_URL = "https://api.darksky.net/forecast/";
    private static final String API_KEY = "******************";
    public static final String API_URL = BASE_URL + API_KEY + "/";

    private static ForecastClient mForecastClient;
    private static Retrofit mRetroAdapter;

    public …
Run Code Online (Sandbox Code Playgroud)

java android otto retrofit

2
推荐指数
2
解决办法
1772
查看次数

Kotlin for Android 中匿名类的覆盖方法

我的代码是用 Java 编写的,我正在将它重构为 Kotlin。我有这个:

Dialog dialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar) {
    @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        dismiss();
        dialog = null;
        setLockedDialog(false);
        return false;
    }
};
Run Code Online (Sandbox Code Playgroud)

我无法使用 Kotlin 编写它。这是我的方法:

dialog = Dialog(this, android.R.style.Theme_Translucent_NoTitleBar) {
    override fun dispatchTouchEvent(ev: MotionEvent) {
        // TODO Implement function
    }
}
Run Code Online (Sandbox Code Playgroud)

我的 Android Studio 向我展示了:

1- Type mismatch. Required: Boolean. Found: Int(下android.R.style.Theme_Translucent_NoTitleBar)。

2-Type mismatch. Required: DialogInterface.OnCancelListener! Found: () - > Unit围绕被覆盖的功能。

有什么建议?

android android-dialog kotlin motionevent

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