晚上好。
我有这样的活动。在handleMessage中,我可以访问largeText字段并且可以更改它,但是我不能使用stringLinks字段,或者不是UI元素的其他字段(如TextView,Button,EditText等)。 如何添加到stringLinks?
public class AboutUsActivity extends Activity {
Handler h;
TextView largeText;
List<String> stringLinks;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
stringLinks = new ArrayList<String>();
largeText = (TextView) findViewById(R.id.textView1);
h = new Handler() {
public void handleMessage(android.os.Message msg) {
HtmlParser parser;
StringBuilder result = new StringBuilder();
try {
parser = new HtmlParser(String.valueOf(msg.getData()));
List<TagNode> links = parser.getContentByClassName("ab");
for (Iterator<TagNode> iterator = stringLinks.iterator(); iterator
.hasNext();) {
TagNode divElement = (TagNode) iterator.next();
result.append(divElement.getText().toString());
}
} catch (Exception e) {
e.printStackTrace();
}
largeText.setText(newhtml); //Work
stringLinks.add(newhtml); //doesn't work
}
};
MyHttpClientUsage connect = new MyHttpClientUsage(h);
try {
connect.getInfoAbout();
} catch (HttpException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:2)
我不知道我是否理解正确。
如果我这样做,您可以使用AsyncTask类
查看他们的主要方法,在单独的线程中执行某些操作的doInBackground和在UI线程中运行的onPostExecute。他们可以相互通信传递对象,您也可以发布任务的进度。
它看起来真的像SwingWorker(如果您编写了Swing应用程序,可能会使用它)。