2016-09-27 46 views
-2

我有代码,在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 
} 
+1

创建一个全局变量! –

回答

0
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 
    } 
} 
+0

创建一个全局变量:/真的吗? v在这里有2个不同的类我怎么能发送全局变量的值从1类到另一个?????? :? –

+0

我在这里给你的建议是,你可以使用一个自定义接口,其中需要更新活动或你的活动的UI的类应该实现 –