小编raj*_*ath的帖子

带DataBinding和lambdas的RadioButton onCheckedChanged

我有一个RadioButton:

<RadioButton
    android:id="@+id/rdioA"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:checked="@{!q.b}"
    android:onCheckedChanged="@{(cb, isChecked) -> {if (isChecked) q.setB(false)}}"
    android:text="AAA"/>
Run Code Online (Sandbox Code Playgroud)

变量“ q”定义为:

<data>
    <import type="android.view.View"/>
    <variable name="q" type="com.example.Q"/>
</data>
Run Code Online (Sandbox Code Playgroud)

Q.java中的函数是:

public void setB(boolean b) {
    this.b = b;
}
Run Code Online (Sandbox Code Playgroud)

我得到的编译错误是:

/Users/../view_d.xml
Error:(60, 53) Syntax error: extraneous input '=' expecting {<EOF>, '.', '::', '[', '+', '-', '*', '/', '%', '<<', '>>>', '>>', '<=', '>=', '>', '<', 'instanceof', '==', '!=', '&', '^', '|', '&&', '||', '?', '??'} 
Error:Execution failed for task ':app:compileDevDebugJavaWithJavac'.
> java.lang.RuntimeException: Found data binding errors.
Run Code Online (Sandbox Code Playgroud)

如果我用 …

data-binding android android-databinding

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

避免 ConstraintLayout 中的重叠

我有以下布局:

<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">

<TextView
    android:id="@+id/itemKey"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/black"
    app:layout_constraintStart_toStartOf="parent"
    tools:text="Recipient:"/>

<TextView
    android:id="@+id/itemValue"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ellipsize="end"
    android:maxLines="1"
    android:textColor="@color/black"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintLeft_toRightOf="@id/itemKey"
    tools:text="loooooooooonnnnnnngemmmmmmmmaaaaaaaiiilll@gmail.com"/>

</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

这就是它的显示方式:

实际的

真的应该是:

理想的

我需要什么来解决这个问题?我试过使用指南和水平偏差,也试过用 RelativeLayout 而不是 ConstraintLayout 来约束它,但到目前为止没有任何帮助。

android android-layout android-constraintlayout

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

MenuItem.getItemId返回0而不是ItemId

我在Menus和MenuItems方面遇到了问题.每当我点击一个MenuItem,item.getItemId()总是返回0.有谁知道为什么?

public class MenuAct extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.event_activity, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Log.d("event", "ItemSelected=" + item.getItemId());// always 0
    return true;
}

}
Run Code Online (Sandbox Code Playgroud)

/res/menu/event_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:name="@+id/evt_createEvent"
    android:title="1" />
<item
    android:name="@+id/menu_evt_abortCreate"
    android:title="2" />
<item
    android:name="@+id/menu_evt_saveChanges"
    android:title="3" />
<item
    android:name="@+id/menu_evt_deleteEvent" …
Run Code Online (Sandbox Code Playgroud)

android menu menuitem

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

Mockito非存根函数

我刚刚开始使用Mockito,所以不太熟悉它。我嘲笑这样的对象:

CInjectorFactory mockFactory = mock(CInjectorFactory.class);
Run Code Online (Sandbox Code Playgroud)

现在,如果我不存根某个特定函数,则该函数不会调用原始CInjectorFactory的函数,并且会得到一个“空”值:

public CMainActivityHelper getMainActivityHelper()
Run Code Online (Sandbox Code Playgroud)

这是否意味着仅存根函数可用于模拟对象?那个被嘲笑的对象没有继承被嘲笑的对象的原始功能吗?

谢谢。

java android mocking mockito

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