我在格式化输入字段时遇到问题,同时使基础范围变量保持非格式化.
我想要实现的是显示货币的文本字段.它应该在运行时自行格式化,同时处理错误的输入.我有这个工作,但我的问题是我想将非格式化的值存储在我的范围变量中.输入的问题是它需要一个双向的模型,因此更改输入字段会更新模型,反之亦然.
我遇到了$parsers,$formatters这似乎是我在寻找的东西.不幸的是,它们并没有相互影响(实际上可能很好地避免无限循环).
我创建了一个简单的jsFiddle:http://jsfiddle.net/cruckie/yE8Yj/,代码如下:
HTML:
<div data-ng-app="app" data-ng-controller="Ctrl">
<input type="text" data-currency="" data-ng-model="data" />
<div>Model: {{data}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)
JS:
var app = angular.module("app", []);
function Ctrl($scope) {
$scope.data = 1234567;
}
app.directive('currency', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attr, ctrl) {
ctrl.$formatters.push(function(modelValue) {
return modelValue.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, ',');
});
ctrl.$parsers.push(function(viewValue) {
return parseFloat(viewValue.replace(new RegExp(",", "g"), ''));
});
}
};
});
Run Code Online (Sandbox Code Playgroud)
同样,这只是一个简单的例子.当它加载一切看起来像它应该.格式化输入字段,而不是变量.但是,在更改输入字段中的值时,它不再自行格式化 - 但变量会正确更新.
有没有办法确保文本字段被格式化而变量不是?我想我正在寻找的是一个文本字段的过滤器,但我无法找到任何东西.
最好的祝福
我创建了一个微调器,用户可以从中选择一个值.我可以更改微调器的文本颜色,如下图所示:

不幸的是,当我按下微调器时,会显示要选择的项目列表,但是这些项目在白色背景上有白色字体颜色,我只是无法更改:
我用Google搜索了问题,其他人也遇到了同样的问题.没有任何修复建议对我有用.据我所知,我必须制作某种自定义列表,但是......我无法使其正常工作.有什么建议?
我的代码看起来像这样(array_spinner是一个字符串数组):
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.row, array_spinner);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Run Code Online (Sandbox Code Playgroud)
我的row.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinnerText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:textColor="#000000"
android:textSize="14dp" />
Run Code Online (Sandbox Code Playgroud) 我目前正在为Android(2.2)和使用SSL的服务器编写客户端部分.我设法在服务器和普通客户端之间交换消息,但Android似乎对自签名证书不太满意.我搜索过Stackoverflow和Google搜索很多,很多人都有类似的问题.到目前为止我找到的所有答案要么不起作用,要么没有任何意义.那里的大多数代码示例都是针对HTTPS的,但我不能使用,因为我需要通过套接字进行通信(SSLSocket是我最好的猜测).我尝试了很多不同的代码,但是现在我又回到零了.
到目前为止,我已经发现我必须创建一个证书(我认为我做对了)和一个自定义的TrustManager.显然我无法找到任何正常工作的代码,这就是我在这里问的原因,因为通常会有一些非常有帮助的人.
我正在寻找有关应该做什么的详细描述,以及一些可以制作成有效的Android客户端代码的代码.
提前致谢