如何从AsyncTask类方法向MainActivity获取字符串?
我有代码,在php页面上使用延伸AsyncTask
的类获取字符串。现在我需要根据字符串值更改UI上的按钮颜色。但我发现v
不能在AsyncTask
类中更改它,因此需要将resultString再次传递给主线程。我应该怎么做? 这里是我的代码:如何从AsyncTask类方法向MainActivity获取字符串?
MainActivityClass
{
//button color changes acc to php page string
}
AsyncTaskClass
{
String result=fetch string data from php using doInBackground method;
//cant change button color here need to pass result to main activity
}
异步任务都有一个覆盖方法,onPostexecute(),请致电mainActivity函数在这个函数并传递字符串作为参数。参考
使用下列内容:
https://developer.android.com/reference/android/os/AsyncTask.html
Class A{
private MyListener ml;
doInBackground(){
//string your_string = GetFromWeb();
//passString(your_string);
}
public void setMyCustomListener(MyListener l){
ml = l;
}
public interface MyListener{
public void passString(String s);
}
}
Class B implements MyListener {
@Override
public void passString(String s){
//Do your thing here
}
}
创建一个全局变量:/真的吗? v在这里有2个不同的类我怎么能发送全局变量的值从1类到另一个?????? :? –
我在这里给你的建议是,你可以使用一个自定义接口,其中需要更新活动或你的活动的UI的类应该实现 –
创建一个全局变量! –