您的位置:首页 > 其它

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();

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: