Android基本界面事件处理——英制转换器与BroadcastReceiver的使用

1.  MainActivity


package com.example.test_kaoshi2;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.*;

public class MainActivity extends Activity
{

	EditText edit_in,edit_cm;
	Button button_in,button_cm;
	
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		edit_in = (EditText)findViewById(R.id.edit_in);
		edit_cm = (EditText)findViewById(R.id.edit_cm);
		
		button_in = (Button)findViewById(R.id.button_in);
		button_cm = (Button)findViewById(R.id.button_cm);
		
		
		Button.OnClickListener btnLintener = new Button.OnClickListener(){

			@Override
			public void onClick(View v)
			{
				// TODO 自动生成的方法存根
				switch(v.getId())
				{
				case R.id.button_in:
					Intent intent1 = new Intent("com.example.test_kaoshi2");
					intent1.putExtra("message1", "你点击了英制!");
					String in = edit_in.getText().toString();
					if(!in.isEmpty())
					{
						double a = Double.parseDouble(in);
						double b = a/2.54;
						edit_cm.setText(String.valueOf(b));
					}
					else edit_cm.setText("0");
                    sendBroadcast(intent1);
					return;
				case R.id.button_cm:
					Intent intent2 = new Intent("com.example.test_kaoshi2");
					intent2.putExtra("message2", "你点击了公制!");
					String cm = edit_cm.getText().toString();
					if(!cm.isEmpty())
					{
					float  a2 = Float.parseFloat(cm);
					double b2 = a2*2.54;
					edit_in.setText(String.valueOf(b2));
					}
					else 
						edit_in.setText("0");
					 sendBroadcast(intent2);
					return;
				}
			}
			
		};
		
		button_in.setOnClickListener(btnLintener);
		button_cm.setOnClickListener(btnLintener);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings)
		{
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
	
	
}


2.  MyBroadcast类


package com.example.test_kaoshi2;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class MyBroadcast extends BroadcastReceiver{

	@Override
	public void onReceive(Context context, Intent intent)
	{
		// TODO 自动生成的方法存根
		String msg1 = intent.getStringExtra("message1");
		String msg2 = intent.getStringExtra("message2");
		
		Toast.makeText(context, msg1, Toast.LENGTH_SHORT).show();
		Toast.makeText(context, msg2, Toast.LENGTH_SHORT).show();
	}
	
}

3.  AndroidManifest.xml文件核心代码

在 </activity>后加

 <receiver android:name=".MyBroadcast">
        <intent-filter>
            <action android:name="com.example.test_kaoshi2"></action>
        </intent-filter>
        </receiver>
类名、动作保持一致。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值