小编sug*_*fle的帖子

如何在Android App中使用AsYouTypeFormatter TextWatcher?

我正在尝试使用来自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)

java android phone-number textwatcher android-edittext

13
推荐指数
2
解决办法
7786
查看次数

使用Sahi Driver在Behat 3中使CSS Selector(第一个孩子)工作

我只是想知道你是否可以指出问题在哪里,如果它是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)

xpath css-selectors sahi behat mink

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

在Android应用程序中使用GeoServer中的getTileURL

我们刚刚开始在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)

谢谢.

MapTestActivity

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)

android overlay wms geoserver google-maps-android-api-2

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