小编yen*_*rah的帖子

Navigation Drawer 和 android 数据绑定

对不起我的英语不好。我需要使用 Android 数据绑定处理按钮单击。我包含在 content_main.xml 数据绑定中。

    <data>
            <variable
                name="temp"
                type="skubyev.anton.navigationdrawer.DataBindingClass.MainActivityData" />
            <variable
                name="presenter"
                type="skubyev.anton.navigationdrawer.DataBindingClass.MainActivityPresenter"/>
        </data>
....
     <android.support.design.widget.FloatingActionButton
                android:onClick="@{() -> presenter.onShowData(temp)}"
Run Code Online (Sandbox Code Playgroud)

但是 MainActivity.java

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ContentMainBinding binding = DataBindingUtil.setContentView(this, R.layout.content_main);

        MainActivityPresenter mainActivityPresenter = new MainActivityPresenter(this);
        MainActivityData mainActivityData = new MainActivityData("??? ?????");
        binding.setTemp(mainActivityData);
        binding.setPresenter(mainActivityPresenter);

        setContentView(R.layout.activity_main);
....

 @Override
    public void showData(MainActivityData mainActivityData) {
        String textForRecognition = mainActivityData.getTextForRecognition();
        Toast.makeText(this, textForRecognition, Toast.LENGTH_SHORT).show();
    }
Run Code Online (Sandbox Code Playgroud)

我希望函数showData运行,然后单击 content_main 中的 FloatingActionButton。但是 showData - MainActivity 类中的函数。因此,据我所知,当您单击位于content_main.xml上的按钮时,它不会被调用。我该怎么办?创建一个单独的类 ContentActivity.java 和函数 showData。

我只想让 MainActivity.java 负责处理对 …

java data-binding android navigation-drawer android-databinding

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

Android数据绑定build.gradle同步问题?

用于数据绑定

1)我已经补充说

android {
    dataBinding {
        enabled = true
    }
Run Code Online (Sandbox Code Playgroud)

到我的项目build.gradle,但发生此错误:

Error:(5, 0) Gradle DSL method not found: 'dataBinding()'
Possible causes:

.The project 'exampleDatabinding' may be using a version of Gradle that does    
not contain the method.
Gradle settings

.The build file may be missing a Gradle plugin.

Apply Gradle plugin
Run Code Online (Sandbox Code Playgroud)

2)然后我补充说:

apply plugin: "com.android.databinding"(项目build.gradle)

classpath "com.android.databinding:dataBinder:1.0-rc1" (项目build.gradle)

但是同样的错误发生了.

android android-activity android-databinding

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

等待设备时出错:等待仿真器上线300秒后超时

我一直在尝试使用android studio模拟器,但是无法在模拟器上运行我的App。当我运行我的应用程序时,它将显示具有以下详细信息的模拟器:

  • 启用Hax

  • 蜡ram_size 0x40000000

  • HAX正在运行,并且模拟器在快速virt模式下运行。

  • 控制台在端口5554上; 5555端口上的ADB

之后,将转到下一个TAB Launching应用,并显示等待设备上线的信息。之后,它显示错误:

Error while waiting for device: Time out after 300 seconds waiting for emulator to come online.
Run Code Online (Sandbox Code Playgroud)

任何人都知道任何解决方案。

android android-emulator android-studio

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

Android 在 RecyclerView 上使用多个不同的行进行数据绑定功能

基本上我可以在 recyclerview adaper 上使用多行而没有任何问题,例如以下代码:

@Override
public ShowBookItemsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    int layout = -1;
    switch (viewType) {
        case 1:
            layout = R.layout.item_heading_one;
            break;
        case 2:
            layout = R.layout.item_heading_two;
            break;
    }

    View v = LayoutInflater.from(parent.getContext()).inflate(layout, parent, false);
    ShowBookItemsViewHolder holder = new ShowBookItemsViewHolder(v);
    return holder;
}
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试在使用 DataBinding 时使用此功能,但出现错误,但我不能这样做

这是我的错误代码:

@Override
public RobotViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    int layout = -1;
    if (inflater == null) {
        switch (viewType) {
            case 0:
                layout = R.layout.robot_item_action;
                break;
            case 1:
                layout = …
Run Code Online (Sandbox Code Playgroud)

data-binding android android-databinding

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

如何使用数据绑定适配器将 EditText 输入添加到自定义模型?

这是我的数据绑定适配器:

@BindingAdapter("taskMinutes")
public static void taskMinutes(@NonNull TextView view, @NonNull Task task) {
    if (task.getDueDate() == null) {
        view.setText("");
        return;
    }
    view.setText(String.valueOf(DateUtils.getDateMinutes(task.getDueDate())));
}
Run Code Online (Sandbox Code Playgroud)

并在xml

app:taskMinutes="@{task}"
Run Code Online (Sandbox Code Playgroud)

分钟会EditText正常显示,但不会添加到 中task.dueDate

但是如何添加适配器以将新输入从EditTextfiled添加到task.dueDate

data-binding android android-databinding

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

在onClick时获取其他视图的值。数据绑定

我有android数据绑定的xml:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>
        <variable name="presenter" type="com.myapp.presentation.presenter.CreateUserPresenter"/>
    </data>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <android.support.design.widget.TextInputLayout
                    android:id="@+id/firstNameInput"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingLeft="16dp"
                    android:paddingTop="8dp"
                    android:paddingRight="16dp"
                    android:paddingBottom="8dp">
                    <android.support.design.widget.TextInputEditText
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:inputType="textCapSentences"
                        android:hint="@string/first_name" />
                </android.support.design.widget.TextInputLayout>
                <android.support.design.widget.TextInputLayout
                    android:id="@+id/secondNameInput"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingLeft="16dp"
                    android:paddingTop="8dp"
                    android:paddingRight="16dp"
                    android:paddingBottom="8dp">
                    <android.support.design.widget.TextInputEditText
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:inputType="textCapSentences"
                        android:hint="@string/second_name" />
                </android.support.design.widget.TextInputLayout>
                <android.support.v7.widget.AppCompatButton
                    android:id="@+id/btnCreate"
                    style="@style/Widget.AppCompat.Button.Colored"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="12dp"
                    android:text="@string/create"
                    android:onClick="@{(view) -> presenter.createUser()}" />    
            </LinearLayout>    
</layout>
Run Code Online (Sandbox Code Playgroud)

CreateUserPresenter.class

public class CreateUserPresenter {

    public CreateUserPresenter () {}

    public void createUser(String firstName, String lastName) {

    }
}
Run Code Online (Sandbox Code Playgroud)

如何在单击按钮的方法中传递输入( …

xml android android-databinding

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

使用自定义XML标记和数据绑定构建不成功的Gradle

当我尝试使用数据绑定和绑定布局中的自定义XML标记运行项目时,我收到下面描述的构建错误:

布局:

<data>
   <variable
        name="data"
        type="com.melontech.sff.viewmodel.DataViewModel" />
</data> 

...

<ImageView 
   android:id="@+id/image"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@mipmap/placeholder_img"
   app:imageUrl="@{data.imageUrl}" />

...
Run Code Online (Sandbox Code Playgroud)

View Model具有以下Binding适配器:

@BindingAdapter("bind:imageUrl")
public static void getImageUrl(ImageView imageView, String url) {
    Timber.d("LOAD IMAGE WITH URL %s", url);
}
Run Code Online (Sandbox Code Playgroud)

创建ViewHolder并进行绑定的代码如下:

@Override
public ModelViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    ModelListItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.model_list_item, parent, false);
    return new ModelViewHolder(binding);
}
Run Code Online (Sandbox Code Playgroud)

构建错误:

Error:Execution failed for task ':app:transformJackWithJackForDebug'.
Run Code Online (Sandbox Code Playgroud)

com.android.jack.ir.JNodeInternalError:java.lang.Exception:java.lang.RuntimeException:failure,请参阅日志以获取详细信息.无法生成视图绑定器java.lang.IllegalArgumentException:element public default java.util.stream.IntStream codePoints()不是包含类型java.lang.String的成员,也不是com.android.jack.eclipse中的任何超类.位于android.databinding.tool.reflection.annotation的android.databinding.tool.reflection.annotation.AnnotationMethod.(AnnotationMethod.java:49)中的jdt.internal.compiler.apt.model.TypesImpl.asMemberOf(TypesImpl.java:129) .AnnotationClass.getDeclaredMethods(AnnotationClass.java:314)位于android.databinding.tool.exol.exol.MethodBaseExpr.resolveListenersAsMethodReference(MethodBaseExpr.java:71)的android.databinding.tool.reflection.ModelClass.getAbstractMethods(ModelClass.java:401)在android.databinding.tool.BindingTarget.resolveListeners(BindingTarget.java)的android.databinding.tool.Binding.resolveListeners(Binding.java:65)的android.databinding.tool.expr.FieldAccessExpr.resolveListeners(FieldAccessExpr.java:131): 164)在android.databinding.tool.LayoutBinder.(LayoutBinder.java:250)位于android.databinding.tool.DataBinder上的android.databinding.tool.DataBinder.(DataBinder.java:52)android.databinding.tool.CompilerChef.ensureDataBinder(CompilerChef.java:88) (CompilerChef.java:187)在android.databinding.annotationprocessor.ProcessExpressions.writeResourceBundle(ProcessExpressions.java:184)在android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:86)在android.databinding.annotationprocessor.ProcessDataBinding $ ProcessingStep.runStep(ProcessDataBinding.java:189)位于android的DB.databprocess.Arocessprocess.ProcessDataBinding $ ProcessingStep.access $ 000(ProcessDataBinding.java:174),位于com的android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:79). com.android.jack.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatc)中的android.jack.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:139)her.java:121)位于com.android.jack.eclipse.jdt.internal.compiler的com.android.jack.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:159). Comiler.processAnnotations(Compiler.java:909)位于com.android.jack.frontend.java.JAstBuilder.compile的com.android.jack.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:434) JAstBuilder.java:269)com.android.jack.frontend.java.JackBatchCompiler.performCompilation(JackBatchCompiler.java:219)at com.android.jack.eclipse.jdt.internal.compiler.batch.Main.compile(Main. java:1712)com.android.jack.frontend.java.JackBatchCompiler.compile(JackBatchCompiler.java:184)at …

data-binding android gradle android-custom-attributes android-databinding

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

Razor 视图中的 String.Trim()

为什么在 Razor 视图中使用它时会String.Trim()引发异常,string.empty如下所示:

console.log('@Model.Test.FirstOrDefault().Trim()');
Run Code Online (Sandbox Code Playgroud)

(列表是空的,所以我得到了string.empty)然后:

Server Error in '/' Application.
Object reference not set to an instance of an object.
(...)'
Line 326:            console.log('@Model.Test.FirstOrDefault().Trim()');
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc razor

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

Android Studio中未生成MainActivityBinding文件

我试图在代码中实现数据绑定功能.在build.gradle中我添加了databinding.enabled = true但是它给出错误无法解析符号启用.如何纠正?

java data-binding android android-databinding

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