Android基本界面事件处理——英制转换器与BroadcastReceiver的使用
2017-11-17 16:14
495 查看
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>类名、动作保持一致。
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>类名、动作保持一致。
相关文章推荐
- Android的短信接收处理----Broadcast和Receiver的使用
- Android中广播接收者BroadcastReceiver的理解与基本使用
- Android中Intent详解(二)之使用Intent广播事件及Broadcast Receiver简介
- Android的广播事件处理Broadcast Receiver
- Android中Intent具体解释(二)之使用Intent广播事件及Broadcast Receiver简单介绍
- Android ACTION_TIME_TICK BroadcastReceiver处理
- android广播事件处理broadcast receive -闹钟实例(运用alarmmanager)
- Android 四大组件之(3)BroadcastReceiver广播事件处理以及与Notification的配合使用详解
- Android之BroadcastReceiver的使用
- Android中BroadCastReceiver使用
- 【BroadcastReceiver】Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- android广播事件处理broadcast receive -闹钟实例(运用alarmmanager)
- 【BroadcastReceiver】增加 addDataScheme("file") 才能收到SD卡插拔事件的原因分析 -- 浅析android事件过滤策略
- android广播事件处理broadcast receive -闹钟实例(运用alarmmanager)
- Android -- Activity 、Service、BroadcastReceiver 结合使用
- Android应用实例之---使用Linkify + 正则式区分微博文本链接及跳转处理如同新浪微博Android版的应用上,当我们点击微博文本上的链接会自动跳转界面,或网站链接跳转网页浏览,或邮箱链接
- Android之BroadcastReceiver的使用
- Android Broadcast receiver使用入门
- Android基本界面元素的使用与讲解