我从哪里开始?

时间:2013-07-02 14:44:41

标签: android string jsoup

我这里有这个代码,它应该获取我需要为TXT文档中的每行文本生成字符串所需的信息,但我不确定我必须从哪里开始以及我的应用程序是否获取信息。如果需要这些信息,它需要生成的字符串将进入TextView但是我不确定我从哪里开始,因为我不知道Jsoup并且被告知这是获取信息的最简单方法将文本行转换为字符串,但我只需要帮助它如何实现它。正在使用的代码如下:

    public void updatebutton(View v){
    new SyncTask().execute();
    Toast.makeText(MainActivity.this, "Updating", Toast.LENGTH_LONG).show();
}

private class SyncTask extends AsyncTask<String, Void, String>{

    @Override
    protected String doInBackground(String... params) {
        Document doc = null;
        String returnValue ="";
        String baseWebPage = "http://nowactivity.webs.com/teststring.txt";

        for(int i = 0; i< params.length; i++){
          try {
            doc = Jsoup.connect(
                baseWebPage)
                .get();
          } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }

          Log.i("DOC", "The line " + doc.toString());

        }

          return returnValue;
    }
}

1 个答案:

答案 0 :(得分:0)

我假设当你运行这段代码时,你的logcat中会打印出teststring.txt的每一行?

如果是这种情况,那么您可以将SyncTask的返回类型从String更改为ArrayList甚至String数组,然后添加每个doc.toString(); 1}}使用for循环到该列表,然后返回它。

从那里,您可以访问该字符串数组并相应地填充TextView

您还可以使用Jsoup在用户的SD卡上本地缓存文本文件,然后您可以从那里填充TextView,而无需每次都重新连接。

编辑:不要使用Jsoup,请尝试使用:

private class SyncTask extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {
        String returnValue = "";    
        String u = "http://nowactivity.webs.com/teststring.txt";
        URL url;
        InputStream stream;
        InputStreamReader streamReader;
        BufferedReader reader;
        String str;

        try {
            System.out.println("Reading URL: " + u);
            url = new URL(u);
            stream = url.openStream();
            streamReader = new InputStreamReader(stream);
            reader = new BufferedReader(streamReader);

            do {
                str = reader.readLine();
                if (str != null)
                System.out.println(str);
            } while (str != null);

        } catch (MalformedURLException e) {
            System.out.println("Invalid URL");
        } catch (IOException e) {
            System.out.println("Can not connect");
        }

        return returnValue;
    }
}

这也适用于AsyncTask,你可以创建相同的ArrayList并返回它,而不是尝试使用Jsoup。