小编Far*_*ABZ的帖子

黄油刀返回空指针

我想在我的项目中使用Butter Knife.我根据Butter Knife教程做了一切.但是当我向视图设置任何内容(setText,setClickListener ...)时,我得到了null对象引用异常.

这是我的代码:

public class LoginActivity extends AppCompatActivity implements LoginView, View.OnClickListener {

@BindView(R.id.acEtUsername) AppCompatEditText userName;
@BindView(R.id.acEtPassword) AppCompatEditText password;
@BindView(R.id.prgCheckLogin) ProgressBar prgCheckLogin;
@BindView(R.id.btnLogin) Button btnLogin;

LoginPresenter loginPresenter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    ButterKnife.bind(this);
    ButterKnife.setDebug(true);

    loginPresenter = new LoginPresenterImpl(this);

    btnLogin.setOnClickListener(this); // or userName.setText("userName");
  }
  /** Other Methods **/
Run Code Online (Sandbox Code Playgroud)

activity_login.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin">

    <android.support.v7.widget.AppCompatEditText
        android:id="@+id/acEtUsername"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:layout_marginRight="32dp"
        android:layout_marginLeft="32dp"
        android:hint="@string/user_name"/>

    <android.support.v7.widget.AppCompatEditText
        android:id="@+id/acEtPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:layout_marginTop="8dp" …
Run Code Online (Sandbox Code Playgroud)

android butterknife

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

如何禁用BottomSheetDialogFragment拖动

如何禁用BottomSheetDialogFragment手指拖动?

我看到了类似的问题,但他们BottomSheet都不是BottomSheetDialogFragment.

android android-layout android-view android-dialog bottom-sheet

13
推荐指数
7
解决办法
8418
查看次数

在清单中使用变量

集成一些库(例如Branch-io在 Android 中)需要在项目清单中定义元数据。其中一些变量就像TestMode

    <meta-data android:name="io.branch.sdk.TestMode" android:value="true" />
Run Code Online (Sandbox Code Playgroud)

因此,当我们想要发布应用程序时,我们应该将其更改为 False。

有什么方法可以根据某处定义变量BuildType并将其分配给元数据吗?

android gradle android-manifest branch.io

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

获取凌空请求标记作为响应

我正在使用凌空,我有一个队列来调用一些API.队列从数据库填充.

在向请求volley队列添加请求之前,我通过调用设置请求标记

jsonObjectRequest.setTag(id);

作为回应,我想从该database列中删除一列id等于请求标记ID.

那么,我如何获得请求标签HttpRequest response

android json android-volley

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

Android ViewPager CrossFade动画

我为android实现了BottomNavigation视图,我有一些片段显示为BottomNavigation页面.根据Google Material Design Guide Lines,我想展示具有交叉淡入淡出动画的片段.

通过触摸BottomNavigation的项目,我的ViewpPager会使用默认的幻灯片动画更改片段.

我在这里这里读了一些解决方案.但这些并不是真正的淡化动画,我无法设置渐弱的持续时间.

那么有什么方法可以在更改ViewPager的选项卡时设置动画?

android android-animation android-viewpager

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

为什么在拇指前面显示了seekbar tick标记?

我的seekBar样式是android Widget.AppCompat.SeekBar.Discrete.我有自己的tickMarker,但你可以看到它显示在拇指标记前面,但我不想看到拇指背后的蜱虫.

我想要的是: 在此输入图像描述

而我拥有的东西:

在此输入图像描述

我的XML:

 <android.support.v7.widget.AppCompatSeekBar
    style="@style/seekbarStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="4"
    android:padding="4dp"
    android:progress="0"/>
Run Code Online (Sandbox Code Playgroud)

我的风格:

<style name="seekbarStyle" parent="Widget.AppCompat.SeekBar.Discrete">
    <item name="tickMark">@drawable/seekbar_tickmark</item>
    <item name="android:thumb">@drawable/circle</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android android-styles android-seekbar

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

使用 Android 下载管理器下载文件并保存在应用程序文件夹中

如何从我的 Android 应用程序中的 Web 服务器下载一些文件,并将它们存储在根位置的应用程序文件夹中或内部/外部内存中的私人文件夹中。

我可以下载文件,但无法将它们存储在私人文件夹中。

我已经写了我的下载管理器,但在显示通知(如下载百分比)时遇到了一些问题。

android android-download-manager

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

导航组件防止在重新按下时重新创建片段

Jetpack Navigation Component在我的项目中使用了信号活动和一些片段。

我有一个片段,其中包含从服务器端填充的列表。我在onViewCreated方法上调用getDataFromServer ,然后当用户单击项目时显示新片段。

问题是当我按下后退按钮时,onViewCreated再次在列表片段中调用。

那么如何防止重新创建我的第一个片段?我不想onViewCreated打。

android fragment android-fragments fragment-lifecycle android-architecture-navigation

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

防止 RecyclerView 手动滚动

我有一个像专辑这样的项目列表,我通过 RecyclerView 显示它。

此外,每个项目都有一个按钮,通过单击然后滚动到列表中的下一个位置来将一些数据发送到服务器。

所以我的问题是:

如果调用 smoothScrollToPosition() 方法,如何防止 RecyclerView 手动滚动(手势)但滚动到某个位置?

android android-recyclerview

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

如何在应用程序最小化时暂停/停止收集/发送流中的数据?

我有一个 UseCase 和远程存储库,它们在循环中返回 Flow,并且我在 ViewModel 中收集 UseCase 的结果,如下所示:

viewModelScope.launch {
    useCase.updatePeriodically().collect { result ->
        when (result.status) {
            Result.Status.ERROR -> {
                errorModel.value = result.errorModel
            }
            Result.Status.SUCCESS -> {
                items.value = result.data
            }
            Result.Status.LOADING -> {
                loading.value = true
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是当应用程序处于后台(最小化)时流程继续工作。那么我可以在应用程序在后台时暂停它并在应用程序返回前台时恢复它吗?

而且我也不想观察我视图中的数据(片段或活动)。

android viewmodel android-lifecycle kotlin-coroutines

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