是否可以使用Android绑定功能将setOnPageChangeListener的处理程序绑定到XML文件中的ViewPager?
演示显示onClick事件,但我很好奇我可以用它实现多少事件功能.关于数据绑定功能的任何链接也都很棒.谢谢.
假设的例子:
example_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="handlers" type="com.example.Handlers"/>
</data>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:onPageChangeListener="@{handlers.pageChanged}" />
</layout>
Run Code Online (Sandbox Code Playgroud)
Handler.java
package com.example.viewmodels;
import android.view.View;
public class Handlers {
public void pageChanged(View view){}
}
Run Code Online (Sandbox Code Playgroud)
编译错误是:
错误:(62)在'android'包中找不到属性'onPageChangeListener'的资源标识符
鉴于以下示例代码,有一种初始化方法total,以便我在以后使用它时不必进行空检查.我无法将值传递给构造函数.
public class SampleCode
{
private WeakReference<Float> total;
public SampleCode() {
}
public void setWidget(Float total) {
this.total = new WeakReference<>(total);
}
public float calculatePercentage(Float count) {
if (total == null) {
return -1;
}
if (total.get() == null) {
return -1;
}
return count / total.get();
}
}
Run Code Online (Sandbox Code Playgroud)
我想在构造函数中做这样的事情:
this.total = new WeakReference<>(null);
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我可以在已发布状态下初始化WeakReference,还是违反了类的目的?
谢谢
编辑
感谢所有的反馈.
total.get() == null在初始化之后评估为false this.total = new WeakReference<>(null);
我现在明白该陈述是不正确的.这将评估为真.但是我认为最好不要将它初始化为null并在访问之前检查null条件.
我正在尝试使用screencapture并将其保存为jpg格式的文件.我正在关注这个例子.
http://docs.unity3d.com/ScriptReference/Texture2D.EncodeToPNG.html
这是我到目前为止:
string jpgFile = Application.persistentDataPath + "/scrn-1.jpg";
Texture2D tex = new Texture2D (Screen.width, Screen.height);
tex.ReadPixels (new Rect(0, 0, Screen.width, Screen.height), 0, 0);
tex.Apply ();
var bytes = tex.EncodeToJPG();
Destroy (tex);
System.IO.File.WriteAllBytes(jpgFile, bytes);
Run Code Online (Sandbox Code Playgroud)
我发现在iOS上的Unity中运行它给了我:
JPEG参数struct mismatch:库认为大小是372,调用者期望360
但是,如果我将转换更改为tex.EncodeToPNG(); 并将文件名更改为.png一切正常.我不知道如何进行任何援助将不胜感激.谢谢.