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

来源:互联网 发布:winzip 软件下载 编辑:程序博客网 时间:2024/05/29 11:37

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;@Overrideprotected 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(){@Overridepublic 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);}@Overridepublic 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;}@Overridepublic 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{@Overridepublic 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>
类名、动作保持一致。


原创粉丝点击