Я новичок в java и andriod, и я думаю, что я сделал что-то не так с потоком Программа запускается без ошибок.Текст не отображается текст
Я вставил одну кнопку только для теста, и она отображается без проблем. Текстовый вид даже не отображает строку «Hello world» по умолчанию.
Вот код
package com.example.studentservis;
import android.R.string;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
import java.net.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.io.*;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.w3c.dom.Text;
public class MainActivity extends Activity {
StringHandler stringHandler = new StringHandler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
thread.run();
TextView txtView = (TextView)this.findViewById(R.id.textView1);
txtView.setText(stringHandler.getString());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
Thread thread = new Thread(){
public void run(){
try {
stringHandler.setString(webRequest());
} catch (Exception e) {
// TODO Auto-generated catch block
stringHandler.setString(e.getMessage());
}
}
};
public String webRequest() throws Exception{
String servisURL = "http://www.sczg.unizg.hr/student-servis/";
Document doc = Jsoup.connect(servisURL).get();
Elements jobNode = doc.select("div.jobBox");
return jobNode.get(0).text();
}
public class StringHandler
{
public String str = "test";
public void setString(String s)
{
str = s;
}
public String getString()
{
return str;
}
}
}
Он не обновляет поток пользовательского интерфейса из другого потока. Он обновил пользовательский интерфейс из потока пользовательского интерфейса. Это не проблема. Проблема в том, что когда он хочет обновить пользовательский интерфейс, новый Thread еще не закончен и не имеет готовых данных –
@MiroMarkarian согласился, я обновил свой ответ, если у вас есть downvoted, вы можете удалить то же самое сейчас – Raghunandan
Хорошо. Но в любом случае это то же самое, что и мой ответ :) –