我一直在尝试为Android编写一个简单的3类java应用程序,但我无法弄清楚一件事。如何解决在类之间传递数据的问题?在我的情况下,我有3个班级:
第三个类不能执行网络部分,因为它涉及一个无法在Activity类中完成的等待循环。
那我该怎么做呢?
答案 0 :(得分:2)
您可以定义一个监听器,该监听器由"在屏幕上写入"类和#34;解析数据"班级用来与它交谈。例如:
class Parser {
private ParsingFinishedListener callback;
public Parser(ParsingFinishedListener c) {
this.callback = c;
}
//some code
public void parse(String stuffToParse) {
//code
callback.onTextParsed(parsedText);
}
public interface ParsingFinishedListener {
public void onTextParsed(String textToVizualize);
}
}
class MyTask extends AsyncTask<Void, Void, Void> {
private ParsingFinishedListener callback;
public MyTask(ParsingFinishedListener c) {
this.callback = c;
}
..doInBackground..
..onPostExecute(String result) {
Parser p = new Parser(callback);
p.parse(result);
}
}
class MyActivity extends Activity implements ParsingFinishedListener {
...onCreate(...) {
...
MyTask task = new MyTask((ParsingFinishedListener) this);
task.execute();
}
//some code
@Override
public void onTextParsed(String result) {
//do something with the result
}
}
您在Parser中定义了侦听器,在完成解析后,您可以使用它来访问应该实现它的Activity。