0

私はアンドロイド初心者です。

アクティビティ用にある種のプリローダーを作成する必要があります。今、私は「会社を表示」というボタンをクリックし、その後、データがサーバーからロードされて内部に表示される次のアクティビティに進みます。問題は、(私が理解していることから)アクティビティがインターネットに接続していて、接続が完了するまで何も表示されないことです。ユーザーは待つ必要があり、その後(数秒後-変化します)、新しいアクティビティに基づいて新しい100%準備完了ページを取得します。

私にとって最適なのは、次のようなものです。アクティビティが完全に読み込まれるまで表示されるロードアニメーションを作成します。(それはどこでも問題を解決するでしょう)

別の方法は、インターネットURLに接続する前に新しいアクティビティをロードすることです。ロードされると、最初のテキストを置き換えるURLからフルテキストがダウンロードされるまで、「データのロード」のようにデフォルトで表示されます。

これが私がURLからテキストをロードするために使用するコードです。

    try {
        // Create a URL for the desired page
        URL url = new URL(serwer_url);

        // Read all the text returned by the server
        BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
        String str;
        while ((str = in.readLine()) != null) {
            // str is one line of text; readLine() strips the newline character(s)
            Plain_str = Plain_str + str; 
        }
        Log.i("Plain read str", Plain_str);
        in.close();


    } catch (MalformedURLException e) {
    } catch (IOException e) {}      
    //end of reading file       

    //here is the anchor to the text in activity
    TextView MainText = (TextView)findViewById(R.id.TextMain);      
    MainText.setText(Html.fromHtml(Plain_str.toString()));
4

1 に答える 1

2

次のように AsyncTask を使用できます。

protected class Mytask extends AsyncTask<Void, Void, String>{

        @Override
        protected String doInBackground(Void... params) {
            String Plain_str= null;
            try {
                // Create a URL for the desired page
                URL url = new URL(serwer_url);

                // Read all the text returned by the server
                BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
                String str;
                while ((str = in.readLine()) != null) {
                    // str is one line of text; readLine() strips the newline character(s)
                    Plain_str = Plain_str + str; 
                }
                Log.i("Plain read str", Plain_str);
                in.close();


            } catch (MalformedURLException e) {
            } catch (IOException e) {}   

            return Plain_str;
        }
        protected void onPostExecute(String str){
            TextView MainText = (TextView)findViewById(R.id.TextMain);      
            MainText.setText(Html.fromHtml(str.toString()));
        }
    }

そして、タスクを実行します

new MyTask().execute();
于 2012-11-06T13:00:04.860 に答える