遇到一個問題,需要在一個activity中控制另一個acitivity做一些更新,沒想到傳遞handler的方法,通過以下方式解決。
1.在MyAPP中定義屬性handler
package jason.com;import jason.com.MasterActivity.MyHandler;import android.app.Application;/*** 自己實現Application,實現資料共用* @author jason*/public class MyAPP extends Application {// 共用變數private MyHandler handler = null;// set方法public void setHandler(MyHandler handler) {this.handler = handler;}// get方法public MyHandler getHandler() {return handler;}}
2、在主activity 中給MyAPP的屬性handler賦值
@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);mAPP = (MyAPP) getApplication();handler = new MyHandler();tv = (TextView) findViewById(R.id.tv);btn_to = (Button) findViewById(R.id.btn_to);// 設定監聽器btn_to.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 設定共用變數mAPP.setHandler(handler);// 啟動另一個ActivityIntent intent = new Intent(MasterActivity.this,ToChangeViewActivity.class);startActivity(intent);}});}
3、在另一個activity中擷取MyAPP中handler進行傳值
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.show);mAPP = (MyAPP) getApplication();// 獲得該共用變數執行個體mHandler = mAPP.getHandler();findViewById(R.id.btn_chang).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 發送訊息mHandler.sendEmptyMessage(CHANGED);ToChangeViewActivity.this.finish();}});}
作者:jason0539
微博:http://weibo.com/2553717707
部落格:http://blog.csdn.net/jason0539(轉載請說明出處)