如何将文件.txt从网站加载到android textview?

时间:2015-02-21 01:55:23

标签: android web

我只是想知道如何将 .txt 文件从网站加载到我们的在线连接的Android应用程序。

我只是想在使用互联网的在线应用程序中将文本加载到文本视图,有没有最好的方法来做到这一点。

因为我对android非常新,所以经历了很多关于堆栈溢出的教程和问题但是没有为我工作。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

将此AsyncTask嵌入要显示文本的活动中:

private class LoadTextFileTask extends AsyncTask<String, Void, String> {
    private TextView txtView;

    public LoadTextFileTask(TextView txtView) {
        this.txtView = txtView;
    }

    protected String doInBackground(String... urls) {
        String url = urls[0];
        Log.d(TAG, "fetching: " + url);
        try {
            URL obj = new URL(url);
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
            con.setRequestMethod("GET");
            con.setRequestProperty("User-Agent", "Mozilla/5.0");
            if (con.getResponseCode() != 200)
                throw new IOException();
            BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
            while ((inputLine = in.readLine()) != null)
                response.append(inputLine);
            in.close();
            return response.toString();
        } catch (IOException e) {
            e.printStackTrace();
            Log.e(TAG, "error downloading file", e);
        }
        return null;
    }

    protected void onPostExecute(String text) {
        if (text != null) {
            txtView.setText(text);
        }
    }
}

如果要加载文本,请执行此任务,给定文件URL和TextView引用:

new LoadTextFileTask(yourTextView).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, yourTextFileURL);

答案 1 :(得分:0)

您可以使用Google提供和建议的排球库。 (Gradle依赖&#39; com.mcxiaoke.volley:library:1.0.10&#39;) https://www.youtube.com/watch?v=yhv8l9F44qo

    String url = "your_txt_file_url";
    StringRequest request = new StringRequest(url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            //response is what you want :)
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            //Error occurred
        }
    });

    RequestQueue queue = Volley.newRequestQueue(this);
    queue.add(request);

希望有所帮助!