我试图通过阅读网站来创建一个页面自动创建文本的应用程序?
我理解一个数组将被使用和字符串格式化,我很好用android编程但不是专家大声笑。
我曾尝试使用本网站上的一组编码,但我认为这只是为了在线阅读文本文件:
private TextView outtext;
private String HTML;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*FROM HERE*/
outtext= (TextView) findViewById(R.id.textview1); //change id if needed!!!
try {
getHTML();
} catch (Exception e) {
e.printStackTrace();
}
outtext.setText("" + HTML);
/*TO HERE*/
}
private void getHTML() throws ClientProtocolException, IOException
{
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet("http://www.bbc.co.uk/news/"); //URL!
HttpResponse response = httpClient.execute(httpGet, localContext);
String result = "";
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = null;
while ((line = reader.readLine()) != null) {
result += line + "\n";
HTML = result;
}
}
}
我尝试使用bbc.co.uk/news/作为例子。我的应用上的文字视图返回'null'。
希望有人可以帮助我,提前谢谢。
答案 0 :(得分:0)
看起来像
HTML = result;
应该在while循环之外吗?
然后我怀疑在设置TextView值时将填充HTML。您需要在线程中处理HTML请求,然后使用处理程序将结果发布到UI:
private final Handler handler = new Handler();
new Thread()
{
@Override
public void run()
{
getHTML();
handler.post( updateResults );
}
}.start();
final Runnable updateResults = new Runnable()
{
@Override
public void run()
{
updateUi();
}
};
private void updateUi()
{
outtext.setText( "" + HTML );
}