如何在Android应用程序中从Internet获取特定信息

时间:2012-07-25 19:32:59

标签: android

我非常新的在Android App开发中,我需要一些帮助。 我创建这个简单的字典应用程序,提示用户输入一个单词,按下按钮后,它会将该单词带到互联网,可能是wikipedia.org并将该信息返回给用户。 我使用XML来开发应用程序文本字段和按钮。并创建了一段文本(ansa),它将被设置为使用OnClickListener的答案, 我不想设置webview 我只想将文本设置为字典答案。 这是我迄今为止所做的。这个类可以从谷歌获取数据。

public class GetMethod {

public String getInternetData() throws Exception{
    BufferedReader in = null;
    String data = null;
    try{
        HttpClient client = new DefaultHttpClient();
        URI website = new URI("http://www.google.com");
        HttpGet request = new HttpGet();
        request.setURI(website);
        HttpResponse response = client.execute(request);
        in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        StringBuffer sb = new StringBuffer("");
        String l = "";
        String nl = System.getProperty("line.separator");
        while((l = in.readLine()) !=null){
            sb.append(l + nl);
        }
        in.close();
        data = sb.toString();
        return data;
    }finally{
        if (in !=null){
            try{
                in.close();
                return data;
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
}

另一个实现XML的类

public class Dictionary extends Activity {

TextView ansa;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dictionary);

    Button Search = (Button) findViewById(R.id.search);

    ansa = (TextView) findViewById(R.id.ansa);   

    final GetMethod test = new GetMethod();





    Search.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
             String returned;
                try {
                    returned = test.getInternetData();
                    ansa.setText(returned);

                } catch (Exception e) {
                    ansa.setText("Failed");
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }



        }   
    });






}

} 当它执行时,我得到整个网站的HTML

所以我需要有关如何将用户的话带到wiki网站的帮助,并且只获得ansa的文本,可能会解析并将其存储到某个字符串中。 谢谢Alot。

1 个答案:

答案 0 :(得分:2)

您可以使用Google Dictionarydictionary.com等API。

但是你必须实现HTTP客户端并解析响应。然后显示所需的数据。