首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在android studio中打破这个循环?

如何在android studio中打破这个循环?
EN

Stack Overflow用户
提问于 2018-06-14 00:43:27
回答 3查看 1.5K关注 0票数 2

嗨,这是一个循环,我怎么才能在我输入I WHANT TO break it的地方打破它呢?谢谢你的帮助,我使用android studio来开发我的应用程序。

代码语言:javascript
运行
复制
for (int i = 10; i < 100; i++) {
        if (serverconnection.equals("false")) {
            AsyncHttpPost post = new AsyncHttpPost(serveraddress + "/soton/serveraddress.php");
            post.setTimeout(5000);

            final int finalI = i;
            AsyncHttpClient.getDefaultInstance().executeString(post, new AsyncHttpClient.StringCallback() {
                @Override
                public void onCompleted(final Exception e, AsyncHttpResponse source, final String result) {

                    if (e != null) {
                        MainActivity.activity.runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                e.printStackTrace();
                                servernum = finalI+1;
                                Toast.makeText(MainActivity.activity, "not this IP:"+ servernum, Toast.LENGTH_SHORT).show();

                            }
                        });
                    } else if (result.equals("correct address")) {
                        MainActivity.activity.runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.activity,"آدرس جدید پیدا شد",Toast.LENGTH_LONG).show();
                                serverconnection = "true";
                                SharedPreferences.Editor editor = sp.edit();
                                editor.putString("IP", serveraddress+"/");
                                editor.apply();
                                I WHANT TO BREAK IT HERE



                            }
                        });
                    }
                }
            });
        } else {


            SharedPreferences.Editor editori = sp.edit();
            editori.putString("IP", serveraddress+"/");
            editori.apply();
        }
    }
EN

回答 3

Stack Overflow用户

发布于 2018-06-14 00:55:38

只需使用

代码语言:javascript
运行
复制
else if (result.equals("correct address")) {
                        MainActivity.activity.runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.activity,"آدرس جدید پیدا شد",Toast.LENGTH_LONG).show();
                                serverconnection = "true";
                                SharedPreferences.Editor editor = sp.edit();
                                editor.putString("IP", serveraddress+"/");
                                editor.apply();


                         //use break

                         break;

                            }
                        });

来打破一个循环。

IF语句内的break命令将退出

循环

票数 0
EN

Stack Overflow用户

发布于 2018-06-14 01:32:16

在for循环之前使用全局布尔(AtomicBoolean)变量。shouldStop。最初将它的值设置为false。并在进入循环时检查此值是否为真。如果是真的,使用break。或者只是在for语句中使用它作为条件。现在设置shouldStop = true,而不是我想在这里中断它

代码语言:javascript
运行
复制
 `//initialize     AtomicBoolean shouldStop = new AtomicBoolean(Boolean.FALSE);     //update value     shouldStop.set(Boolean.TRUE);`
票数 0
EN

Stack Overflow用户

发布于 2018-06-14 01:51:58

尝试以下代码:

代码语言:javascript
运行
复制
/**
 * Try to connect to the server, with an ip address from 'minIndex' to 'maxIndex';
 * @param context Current Context
 * @param minIndex Index of the ip address to start with. (e.g. 10)
 * @param maxIndex max index
 */
public void testIpConnection(Context context,final int minIndex, final int maxIndex) {
    testConnection(minIndex, new Callback() {
        @Override
        public void onSuccess(String serverAddress) {
            Toast.makeText(context, "آدرس جدید پیدا شد", Toast.LENGTH_LONG).show();
            storeServerAddress(serverAddress);
        }

        @Override
        public void onFailure(int index, @Nullable Throwable e) {
            if (e != null)
                e.printStackTrace();
            Toast.makeText(context, "not this IP:" + index, Toast.LENGTH_SHORT).show();
            index++;
            if (index < maxIndex)
                // Try again with the same callback and the new index
                testConnection(index, this);
            else
                Toast.makeText(context, "Failure: Max IP reached" , Toast.LENGTH_SHORT).show();   
        }
    });
}

/**
 * Connect to the server
 *
 * @param index    index to generate the ip
 * @param callback To be call when the request returns.
 */
public void testConnection(final int index, final Callback callback) {
    final String serverAddress = ...; // TODO: Use the index to generate the serverAddress
    AsyncHttpPost post = new AsyncHttpPost(serverAddress + "/soton/serveraddress.php");
    post.setTimeout(5000);

    AsyncHttpClient.getDefaultInstance().executeString(post, new AsyncHttpClient.StringCallback() {
        @Override
        public void onCompleted(final Exception e, AsyncHttpResponse source, final String result) {
            if (result != null && result.equals("correct address")) {
                callback.onSuccess(serverAddress);
            } else {
                callback.onFailure(index, e);
            }
        }
    });
}

/**
 * Store the server address in the SharedPreferences
 *
 * @param serverAddress Address to store
 */
public void storeServerAddress(String serverAddress) {
    SharedPreferences sp = ... // TODO: Define sp here
    SharedPreferences.Editor editori = sp.edit();
    editori.putString("IP", serverAddress + "/");
    editori.apply();
}

/**
 * To be call when on a result of a server call
 */
private interface Callback {
    void onSuccess(String serverAddress);

    void onFailure(int index, Throwable e);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50842334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档