Activity之间传递Handler

来源:互联网 发布:java集合框架中迭代器 编辑:程序博客网 时间:2024/06/03 07:48

方法一,使用application进行共享

  1. 在MyApp中定义属性handler
package jason.comimport jason.com.MasterActivity.MyHandler;import android.app.Application;public class MyApp extends Application{    //共享变量    private MyHandler handler = null;    //set方法    public void setHandler(MyHandler handler){    this.handler = handler;    }    //get方法    public MyHandler getHandler(){        return handler;    }}
  1. 在主Activity中给MyAPP属性handler赋值
public 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(){        public void onClick(View v){            //设置共享变量            Intent intent = new Intent(MasterActivity.this,ToChangeViewActivity.class);            startActivity(intent);        }    });}
  1. 在另一个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(){        public void onClick(View v){            //发送消息            mHandler.sendEmptyMessage(CHANGED);            ToChangeViewActivity.this.finish();        }    });}

方法二, 使用广播

直接上代码:

MainActivity

public class MainActivity extends Activity{    TextView textView;    Button sButton;    protected void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        textView = (TextView)findViewById(R.id.show);        sButton = (Button)findViewById(R.id.startAnother);        sButton.setOnClickListener(new OnClickListener(){            @Override            public void onClick(View v){                startActivity(new Intent(MainActivity.this,AnotherActivity.class));            }        });        IntentFilter filter = new IntentFilter(AnotherActivity.action)    }    BroadcastReceiver broadcastReceiver = new BroadcastReceiver(){        public void onReceive(Context context,Intent intent){            textView.setText(intent.getExtras().getString("data"));        }    };    protected void onDestory(){        unregisterReceiver(broadcastReceiver);    };}

转自:http://blog.csdn.net/jason0539/article/details/18075293 & http://blog.csdn.net/jason0539/article/details/18055259

0 0
原创粉丝点击