小编Rea*_*oid的帖子

Android数据绑定(类似于WPF)?

我在发布之前已经搜索了一些类似的问题 - 但是我在Android和数据绑定方面有一个普遍的问题(我检查的其他答案并没有让我更进一步......).假设你有一个类车辆:

public class Vehicle {

private Owner owner;
private String brand;

//getter and setter for above attributes...

}
Run Code Online (Sandbox Code Playgroud)

这是所有者类....

public class Owner {

private String name;

}
Run Code Online (Sandbox Code Playgroud)

现在 - 我最近正在研究微软WPF采用的MVVM(ModelView-ViewModel)模式.这让我想知道:假设我想绑定我的所有者对象的name属性,这是Vehicle对象的子对象 - 在Android中是否会有一些标准方法来实现这一点?还假设,在我可以更新模型之前,我可能必须验证输入?

我想象以下组件(假设MVVM):

  • 视图(活动)不包含应用程序逻辑 - 因此它或多或少是空的
  • ViewModel将处理Vehicle对象的实例并对其执行操作
  • 模型本身看起来像我之前发布的代码 - 完全忘记了View和ViewModel

现在,当我将EditTexts,TextViews等添加到视图中时,我希望它们绑定到我的上下文对象的某些属性(在这种情况下为Vehicle)......如果我的问题不明确或者您需要进一步的信息,请执行此操作让我知道:)提前谢谢.

Ps我认为熟悉WPF的人现在可能是我的意思吗?我自己刚刚阅读了WPF并发现它是处理内容的好方法.

PPs我知道android绑定项目,但我想知道Android中是否存在某种内置方法,或者某些约定有人关注:)这真的更像是一个绑定理论问题我猜...

data-binding wpf android

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

Java Regex:matches(pattern,value)返回true但group()无法匹配

我在Java中使用正则表达式有一个奇怪的问题.我在这里测试了我的正则表达式和我的价值而且它有效.它说有3组(正确)第一组(不是第0组!)的匹配是SSS,第2组的匹配是BB,第3组的匹配是0000.但我的代码在下面失败,我很擅长为什么......

String pattern = "([^-]*)-([\\D]*)([\\d]*)";
String value = "SSS-BB0000";
Matcher matcher = Pattern.compile(pattern).matcher(value);
//group() is equivalent to group(0) - it fails to match though
matcher.group();
Run Code Online (Sandbox Code Playgroud)

以下是上述网站的匹配结果截图: 在此输入图像描述

如果有人能指出我犯的错误,我真的很感激...另外一点:奇怪的是,如果我执行以下代码,则返回true,这意味着匹配应该是可能的......

//returns true
Pattern.matches(pattern, value);
Run Code Online (Sandbox Code Playgroud)

java regex

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

Android DatePickerDialog - 失败,出现IllegalArgumentException

在我的Android模拟器上发生了奇怪的事情(代码和模拟器在API级别10上运行 - 是Android 2.3.3):我的emu上的当前日期是22.08.2011 - 如果我用这些设置初始化DatePickerDialog(使用新的值) Date() - 使用当前日期/时间初始化Date)然后失败,但有以下异常:

08-22 02:14:23.731: ERROR/AndroidRuntime(3038): FATAL EXCEPTION: main
08-22 02:14:23.731: ERROR/AndroidRuntime(3038): java.lang.IllegalArgumentException: current should be >= start and <= end
08-22 02:14:23.731: ERROR/AndroidRuntime(3038):     at android.widget.NumberPicker.setCurrent(NumberPicker.java:288)
08-22 02:14:23.731: ERROR/AndroidRuntime(3038):     at android.widget.DatePicker.updateSpinners(DatePicker.java:357)
08-22 02:14:23.731: ERROR/AndroidRuntime(3038):     at android.widget.DatePicker.init(DatePicker.java:352)
08-22 02:14:23.731: ERROR/AndroidRuntime(3038):     at android.app.DatePickerDialog.<init>(DatePickerDialog.java:127)
08-22 02:14:23.731: ERROR/AndroidRuntime(3038):     at android.app.DatePickerDialog.<init>(DatePickerDialog.java:86)
Run Code Online (Sandbox Code Playgroud)

所以我检查了DatePicker源代码(对于API lvl 2.3.3),我检查了DatePicker代码(因为从我知道它在updateSpinners方法中失败的strack跟踪)和那条线357(上面的堆栈中的第四行) trace)它调用mYearPicker.setCurrent(mYear); 这让我觉得我的一年有些不对劲.我记录了我过去的那一年 - 这是2011年的预期.所以我手动通过了2010年而不是有效 - DatePickerDialog出现了 - 初始化为2010年(太糟糕了,我真的需要当年 - 2011年;)......).

我有点不知道原因是什么...我的模拟器上的日期 - 如上所述 - 正确设置为22.08.2011 - 我的开发PC设置为同一天...

关于我哪里出错的任何线索/想法?为了方便起见,我在初始化DatePickerDialog的代码片段:

// Initializes a …
Run Code Online (Sandbox Code Playgroud)

android datepicker android-widget android-datepicker android-sdk-2.3

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