Broadcast配合Interface使用接口回调
2015-04-13 15:09
316 查看
使用BroadCast和接口实现接收消息后处理事务
MainActivity.class代码如下:
package com.example.broadcasthandler;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.example.broadcasthandler.BroadcastMessage.ReceiveHandler;
public class MainActivity extends Activity implements ReceiveHandler {
private EditText valueX;
private EditText valueY;
private TextView resulTextView;
private Button showButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("show");
BroadcastMessage bdBroadcastMessage=new BroadcastMessage();
registerReceiver(bdBroadcastMessage, intentFilter);
valueX=(EditText)findViewById(R.id.valueA);
valueY=(EditText)findViewById(R.id.valueB);
resulTextView=(TextView)findViewById(R.id.result);
showButton=(Button)findViewById(R.id.show);
BroadcastMessage.ehList.add(this);<span style="color: rgb(0, 130, 0); font-family: 'Courier New', 宋体; line-height: 24px; text-indent: -18px; background-color: rgb(248, 248, 248);">// 监听广播</span>
showButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.setAction("show");
sendBroadcast(intent);
}
});
}
@Override
public void showResult() {
// TODO Auto-generated method stub
int aaa=Integer.parseInt(valueX.getText().toString().trim());
int bbb=Integer.parseInt(valueY.getText().toString().trim());
resulTextView.setText(String.valueOf(aaa*bbb));
}
}
Broadcast代码如下:
package com.example.broadcasthandler;
import java.util.ArrayList;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class BroadcastMessage extends BroadcastReceiver{
public static ArrayList<ReceiveHandler> ehList = new ArrayList<ReceiveHandler>();
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
if (arg1.getAction().equals("show")) {
for(int i = 0; i < ehList.size(); i++) {
((ReceiveHandler)ehList.get(i)).showResult();
}
}
}
public static interface ReceiveHandler{
public void showResult();
}
}
MainActivity.class代码如下:
package com.example.broadcasthandler;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.example.broadcasthandler.BroadcastMessage.ReceiveHandler;
public class MainActivity extends Activity implements ReceiveHandler {
private EditText valueX;
private EditText valueY;
private TextView resulTextView;
private Button showButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("show");
BroadcastMessage bdBroadcastMessage=new BroadcastMessage();
registerReceiver(bdBroadcastMessage, intentFilter);
valueX=(EditText)findViewById(R.id.valueA);
valueY=(EditText)findViewById(R.id.valueB);
resulTextView=(TextView)findViewById(R.id.result);
showButton=(Button)findViewById(R.id.show);
BroadcastMessage.ehList.add(this);<span style="color: rgb(0, 130, 0); font-family: 'Courier New', 宋体; line-height: 24px; text-indent: -18px; background-color: rgb(248, 248, 248);">// 监听广播</span>
showButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.setAction("show");
sendBroadcast(intent);
}
});
}
@Override
public void showResult() {
// TODO Auto-generated method stub
int aaa=Integer.parseInt(valueX.getText().toString().trim());
int bbb=Integer.parseInt(valueY.getText().toString().trim());
resulTextView.setText(String.valueOf(aaa*bbb));
}
}
Broadcast代码如下:
package com.example.broadcasthandler;
import java.util.ArrayList;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class BroadcastMessage extends BroadcastReceiver{
public static ArrayList<ReceiveHandler> ehList = new ArrayList<ReceiveHandler>();
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
if (arg1.getAction().equals("show")) {
for(int i = 0; i < ehList.size(); i++) {
((ReceiveHandler)ehList.get(i)).showResult();
}
}
}
public static interface ReceiveHandler{
public void showResult();
}
}
相关文章推荐
- Android远程服务AIDL的使用以及配合接口回调使用
- AIDL中使用Interface接口回调
- Delphi中Interface接口的使用方法
- Spring JMS使用回调接口发送消息
- Delphi中Interface接口的使用方法
- web开发下的HTTP编程及接口回调的使用
- AXI-Lite:Simper,non-brust control register style interface 添加寄存器类型接口IP核详细使用步骤说明
- 一些必需被實現的接口後才可以使用的Interface
- as3.0 interface接口使用方法
- Go语言使用接口(interface)和结构(struct)来模拟对象继承
- Android中回调接口的使用
- Fragment学习之使用接口回调的方式实现Fragment与Activity通信
- 接口对象的实例化在接口回调中的使用
- spring RowMapper回调接口的使用 以及jdbc模板提供的queryfor系列的方法摘要
- C# 接口使用 (interface)
- androi之Service+Broadcast+Timer+ui【通过绑定服务、自定义回调接口判断网络连接】
- Delphi中Interface接口的使用方
- 使用回调接口实现ActiveX控件和它的容器程序的通讯
- 使用AIDL设计远程接口(Designing a Remote Interface Using AIDL)
- Android中回调接口使用实例