我正在尝试使用来自Google的libphonenumber的AsYouTypeFormatter和TextWatcher,我不确定它是否可行.我已经能够将文本格式化为从EditText字段输入并将其输出到另一个EditText但不能直接更改原始的EditText字段(这就是我想要的).我知道phoneNumberFormattingTextWatcher,但我们希望用户能够最终选择他们所在的区域设置,并且比使用允许的区域具有更多的控制权(从我收集的内容).
顶级:
private View phoneNumberView;
private EditText phoneNumberText;
private String formattedPhoneNumber;
private boolean isInAfterTextChanged;
private AsYouTypeFormatter aytf;
Run Code Online (Sandbox Code Playgroud)
首先,我在我的类顶部初始化AsYouTypeFormatter:
aytf = PhoneNumberUtil.getInstance().getAsYouTypeFormatter(Locale.getDefault().getCountry());
Run Code Online (Sandbox Code Playgroud)
在创建了我的标签之后,我创建一个EditText框,格式化其中的现有电话号码(可以工作),并附加监听器(这是当前的类):
phoneNumberView = inflater.inflate(R.layout.phone_number_setting, null);
phoneNumberText = (EditText) phoneNumberView.findViewById(R.id.dirty_phone_number);
phoneNumberText.setText(dirtyPhoneNumber);
for (int i = 0; i < dirtyPhoneNumber.length(); i++){
phoneNumberText.setText(aytf.inputDigit(dirtyPhoneNumber.charAt(i)));
}
aytf.clear();
phoneNumberText.setText(dirtyPhoneNumber);
phoneNumberText.addTextChangedListener(this);
Run Code Online (Sandbox Code Playgroud)
那么这就是我目前在TextWatcher函数中所拥有的,我不确定我的代码中应该包含哪些函数:
@Override
public void afterTextChanged(Editable s) {
if (!isInAfterTextChanged) {
isInAfterTextChanged = true;
if(s.length() > 0){
Log.v("AsYouTypeFormatter - source", s.toString());
for(int i = 0; i < s.length(); i++){
formattedPhoneNumber = aytf.inputDigit(s.charAt(i));
Log.v("AsYouTypeFormatter - formatted", formattedPhoneNumber); …Run Code Online (Sandbox Code Playgroud) 我只是想知道你是否可以指出问题在哪里,如果它是Behat,CSS选择器或Sahi驱动程序.
我们刚刚升级到Behat 3并使用Sahi Driver(最新的开源版本).我们发现任何使用伪元素的Behat测试first-child现在似乎都破解了.
例:
步:
And I follow "#the-list tr:first-child .row-title"
Run Code Online (Sandbox Code Playgroud)
(其中包含一个带有类行标题的锚元素,请参阅HTML)
错误:
链接id | title | alt | text"#the-list tr:first-child .row-title"未找到.(贝哈特\水貂\异常\ ElementNotFoundException)
HTML:
<tbody id="the-list">
<tr id="post-162382" class="post-162382 type-post status-publish format-standard hentry category-uncategorized alternate iedit author-other level-0">
<th class="check-column" scope="row"></th>
<td class="post-title page-title column-title">
<strong>
<a class="row-title" title="Edit “Post Title”" href="https://domain.com"></a>
</strong>
<div class="locked-info"></div>
<div class="row-actions"></div>
<div id="inline_162382" class="hidden"></div>
</td>
Run Code Online (Sandbox Code Playgroud)
CSSSelector.php(覆盖我们用旧的Behat,我们把这个文件留在了)
/**
* Makes all of the form field related steps allow CSS selectors.
*/
class …Run Code Online (Sandbox Code Playgroud) 我们刚刚开始在Android上使用Google地图,并设置了GeoServer来提供我们想要在地图上添加为叠加层的切片.到目前为止,我已经学习了一些教程和参考资料.
问题:虽然我在getTileUrl函数中生成的url TileProviderFactory确实在我设置断点并将url复制并粘贴到浏览器时返回png图像,但它不会作为Android设备上的叠加层加载到地图上.有没有错误,从我所看到和阅读后,被抛出这个我不知道是否会有任何因为他们已经表示,正在静音的错误.
我想知道的是,如果您可以在我的代码中看到任何直接问题,或者有任何调试建议我将能够判断应用程序是否实际与我的GeoServer通信以检索图像.我查看了GeoServer上的日志,似乎只有我的浏览器请求正在通过,而且它没有收到来自Android的任何请求(这有点难以分辨,因为我们还有其他应用程序使用服务器).Android手机通过wifi和手机连接,并启用了GPS.作为最后的手段,我尝试更改瓷砖覆盖zIndex并将其设置为可见,但这似乎没有任何区别.
编辑:此时Android设备肯定不与GeoServer通信.
编辑2:能够从网站(如此)加载静态图像作为叠加层,并发现我在测试出形成的URL的HTTP请求时遇到以下异常:
W/System.err(10601): java.net.SocketException: The operation timed out
W/System.err(10601): at org.apache.harmony.luni.platform.OSNetworkSystem
.connectStreamWithTimeoutSocketImpl(Native Method)
W/System.err(10601): at org.apache.harmony.luni.net.PlainSocketImpl
.connect(PlainSocketImpl.java:244)
W/System.err(10601): at org.apache.harmony.luni.net.PlainSocketImpl
.connect(PlainSocketImpl.java:533)
W/System.err(10601): at java.net.Socket
.connect(Socket.java:1074)
W/System.err(10601): at org.apache.http.conn.scheme.PlainSocketFactory
.connectSocket(PlainSocketFactory.java:119)
Run Code Online (Sandbox Code Playgroud)
谢谢.
public class MapTestActivity extends FragmentActivity
implements LocationListener, LocationSource{
private GoogleMap mMap;
private OnLocationChangedListener mListener;
private LocationManager locationManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map_test);
setupLocationManager();
setupMapIfNeeded();
}
private void setupLocationManager() {
this.locationManager …Run Code Online (Sandbox Code Playgroud)