小编Ale*_*ndr的帖子

如何使用AppCompat设置禁用的按钮颜色?

我使用这种风格来改变我的背景颜色Button:

<style name="AccentButton" parent="Widget.AppCompat.Button.Colored">
    <item name="colorButtonNormal">@color/colorAccent</item>
    <item name="android:textColor">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

布局中:

    <Button
        android:id="@+id/login_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/fragment_login_login_button"
        app:theme="@style/AccentButton"/>
Run Code Online (Sandbox Code Playgroud)

有用.但是当我打电话setEnabled(false)给它时Button,它保持相同的颜色.我该如何处理这个案子?

android android-appcompat android-button

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

如何使用Gson序列化java.nio.file.Path?

java.lang.StackOverflowError试图序列化Object包含时得到java.nio.file.Path

即使我写道:

public class PathConverter implements JsonDeserializer<Path>, JsonSerializer<Path> {
    @Override
    public Path deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
        return Paths.get(jsonElement.getAsString());
    }

    @Override
    public JsonElement serialize(Path path, Type type, JsonSerializationContext jsonSerializationContext) {
        return new JsonPrimitive(path.toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

并应用它:

    String json = new GsonBuilder()
            .registerTypeAdapter(Path.class, new PathConverter())
            .create()
            .toJson(constructorSetup, new TypeToken<ConstructorSetup>() {}.getType());
Run Code Online (Sandbox Code Playgroud)

我仍然无法序列化这个类:

public class ConstructorSetup {

    private Path appIconMimmapDirPathOnPc;

}
Run Code Online (Sandbox Code Playgroud)

Stacktrace :(完全在pastebin上)

Exception in thread "main" java.lang.StackOverflowError
    at com.google.gson.internal.$Gson$Types.resolve($Gson$Types.java:380)
    at com.google.gson.internal.$Gson$Types.resolve($Gson$Types.java:375) …
Run Code Online (Sandbox Code Playgroud)

java nio gson

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

Snackbar没有移动放置在Fragment内部的FAB

有一个方案描述了我的应用程序的视图层次结构.

例

还有一些XML

主要活动

. CoordinatorLayout
  . FrameLayout <- ContentFragment inserted here
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
  . AppBarLayout
    . Toolbar
Run Code Online (Sandbox Code Playgroud)

ContentFragment

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical"/>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="56dp"
        android:layout_height="56dp"
        android:src="@drawable/ic_plus_white_36dp"
        android:layout_gravity="bottom|end"
        android:layout_margin="15dp"
        app:elevation="6dp"
        app:pressedTranslationZ="12dp"/>

    <TextView
        android:id="@+id/hint_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/empty_dates_list"
        android:padding="20dp"
        android:textSize="20sp"
        android:layout_gravity="center" />

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

用这个代码我做SnackBar:

Snackbar snackbar = Snackbar.make(
        mainActivity.getCoordinatorLayout(),
        R.string.date_removed,
        Snackbar.LENGTH_LONG);
Run Code Online (Sandbox Code Playgroud)

我的问题是,我在ContentFragment中fab没有提升SnackBar

我也试过点fab作为观点,Snackbar但它没有带来结果.

android android-layout android-fragments android-coordinatorlayout

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

我应该在使用rxbinding时取消订阅吗?

我如何在Kotlin中使用RxBinding:

override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    reset_password_text_view.clicks().subscribe { presenter.showConfirmSecretQuestionBeforeResetPassword() }
    password_edit_text.textChanges().skip(1).subscribe { presenter.onPasswordChanged(it.toString()) }
    password_edit_text.editorActionEvents().subscribe { presenter.done(password_edit_text.text.toString()) }
}
Run Code Online (Sandbox Code Playgroud)

Observable.subscribe(action)回报Subscription.我应该保留它作为参考并取消订阅onPause()onDestroy()

像这样:

private lateinit var resetPasswordClicksSubs: Subscription

override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    resetPasswordClicksSubs = reset_password_text_view.clicks().subscribe { presenter.showConfirmSecretQuestionBeforeResetPassword() }
}

override fun onDestroy() {
    super.onDestroy()
    resetPasswordClicksSubs.unsubscribe()
}
Run Code Online (Sandbox Code Playgroud)

android kotlin rx-java rx-binding

10
推荐指数
3
解决办法
4100
查看次数

多次运行espresso测试

有时我在申请中遇到了罕见的错误.但我无法重现它,因为它非常罕见.所以,我决定写简单的浓咖啡测试:

@RunWith(AndroidJUnit4::class)
@LargeTest
class MainActivityTest {

    val password = "1234"

    @Rule @JvmField
    var mActivityRule: ActivityTestRule<MainActivity> = ActivityTestRule(MainActivity::class.java)

    @Test
    fun checkNotesListNotEmpty() {
        onView(withId(R.id.password_edit_text)).perform(typeText(password))
        onView(withId(R.id.notes_recycler_view)).check { view, noMatchingViewException ->
            if (noMatchingViewException != null) throw noMatchingViewException
            assertThat((view as RecyclerView).adapter.itemCount,  Matchers.`is`(1))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在匹配失败时循环此测试并停止它?

android kotlin android-espresso

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

animateLayoutChanges不动画从工具栏删除后退箭头

CoordinatorLayoutAppBarLayoutToolbar它里面:

CoordinatorLayout
 - AppBarLayout 
   - Toolbar
     animateLayoutChanges=true
Run Code Online (Sandbox Code Playgroud)

真好 我使用此代码隐藏/显示back arrow button

private void setBackArrowState(boolean state) {
    actionBar.setDisplayHomeAsUpEnabled(state);
    actionBar.setDisplayShowHomeEnabled(state);
}
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

例

back arrow button隐藏时,title没有动画到它的正常位置。我该如何解决?

android android-animation android-layout android-actionbar android-toolbar

7
推荐指数
0
解决办法
338
查看次数

如何使用Espresso执行EditText的actionDone事件

标题中的问题.

我尝试过类似的东西:

    onView(withId(R.id.search_edit_text))
            .perform(typeText("some"), pressKey(KeyEvent.KEYCODE_ENTER));
Run Code Online (Sandbox Code Playgroud)

但它不起作用.键盘仍然显示,而TextView.OnEditorActionListener不是调用.有任何想法吗?

android android-edittext android-espresso

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

如何使用时区偏移格式化LocalDateTime

我试着这样做:

    ZoneOffset zoneOffset = ZoneOffset.ofHours(3);
    DateTimeFormatter fmt = DateTimeFormatter.ofPattern("HH:mm:ss");

    LocalDateTime dateTime = LocalDateTime.now();
    System.out.println("dateTimeWithoutOffset: " + fmt.format(dateTime));

    ZonedDateTime zonedDateTime = ZonedDateTime.of(dateTime, zoneOffset);
    System.out.println("dateWithOffset: " + fmt.format(zonedDateTime));
Run Code Online (Sandbox Code Playgroud)

但我得到相同的输出:

dateTimeWithoutOffset: 18:11:06
dateTimeWithOffset: 18:11:06
Run Code Online (Sandbox Code Playgroud)

我想看到这样的事情:

dateTimeWithoutOffset: 18:11:06
dateTimeWithOffset: 21:11:06
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

java java-8

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

将Firebase DB与本地数据库一起使用

在我的应用程序中,我有SQLite db.我想介绍用户设备之间的同步.Firebase DB看起来是一个可接受的解决方案,但Firebase DB最初是云数据库.所以,我不能将它用作本地数据库,如果用户拒绝auth对话并让他使用app,但没有云同步.

现在我考虑将我local SQLite db与... 结合起来cloud Firebase db.

例如,当用户添加新行时local SQLite db,我的应用程序也会将数据放入Firebase DB.此用户的其他设备将捕获此事件并更新其本地数据库.当用户使用身份验证并在新设备上安装应用程序时,我希望它能够下载所有行并将其放入local SQLite db.这是我的想法:Firebase DB 用于同步数据,而不是用于将其存储在设备上.主要原因是让用户使用我的应用程序而无需验证和同步.第二个that Firebase DB不是设计用作本地数据库.

我是正确的?是否可以将Firebase DB与另一个本地数据库一起使用?

相关问题:

链接他想要我想要的一样:

我的计划是为用户提供保持离线的选项

android firebase android-sqlite firebase-authentication firebase-realtime-database

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

如何使用JavaFX在未装饰的舞台上添加阴影?

我所看到的:

在此处输入图片说明

我想看的是:

在此处输入图片说明

我尝试添加阴影,css但效果在SceneBuilder 中可见。程序窗口显示为阴影。

.rootBorder {
    -fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.4), 10, 0.5, 0.0, 0.0);
}
Run Code Online (Sandbox Code Playgroud)

如何在舞台上添加阴影?谢谢。

javafx javafx-8

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