2012-10-31 40 views
0

比方說,我有以下主要活動:如何從延伸到另一個類爲活動的Java類返回值

public class MwConsoleActivity extends Activity { 

    private classChild child = null;  

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     child = new classChild(); 
    } 
} 

然後考慮類「classChild」的實施:

public class MwBondingAgent extends SapereAgent { 

    MwBondingAgent(){} 

    public void AddEventListener(childAddedEvent event) { 

     //Send the data of event back to the main activity 

    } 
} 

我試過使用IntentServices,但無法接收返回主活動的值。我會採取什麼方法?

乾杯 阿里

+0

我不知道你在問什麼。你問如何使用偵聽器來實現觀察者模式? – toadzky

+0

完全不清楚。 – njzk2

+0

謝謝你們的答覆。設計模式的解決方案非常乾淨。但我設法通過IntentService和ResultReceiver解決了這個問題,它比IntentFilters好得多。 下面提供的鏈接幫助了我很多: http://stackoverflow.com/questions/3028306/download-a-file-with-android-and-showing-the-progress-in-a-progressdialog/3028660#3028660 –

回答

2

您可以使用intentFilter來偵聽廣播。 這個添加到活動:

IntentFilter intentFilter = new IntentFilter(
       "com.unique.name"); 
     mReceiver = new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 
       //extract our message from intent 
       String msg_for_me = intent.getStringExtra("some_msg"); 
      } 
     }; 
     //registering our receiver 
     this.registerReceiver(mReceiver, intentFilter); 

在你的類將它添加到您要通知該活動的一部分:

Intent i = new Intent("com.unique.name").putExtra("some_msg", "I have been updated!"); 
this.sendBroadcast(i); 
1

你的問題還不太清楚,但我認爲你想要的是實現回調你的活動。你可以使用界面來做到這一點。

public class MwConsoleActivity extends Activity implements MwBondingAgent{ 

    private classChild child = null;  

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     child = new classChild(); 
    } 

    @Override 
    public void gotEventData(EventData myEventData) { 

     //to whatever you want with myEventData 
    } 
} 

而在你的其他班。

相關問題