在JAVA 程式註冊 Broadcast Receiver 的寫法 :
XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MyActivity">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/EditTxt"
android:textSize="30sp"
android:text=""
/>
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="確定"
android:textSize="30sp"
android:layout_below="@+id/EditTxt"
/>
<TextView
android:id="@+id/txtView"
android:layout_below="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
-----------------------------------------------------
JAVA: MyActivity
package com.example.user.test;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.view.View.OnClickListener;
public class MyActivity extends Activity{
Button btnTest;
EditText editTextTest;
public TextView txtViewTest;
String stringTxt;
TestBroadcaseReceiver testBroadcaseRecTest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
(btnTest = (Button)findViewById(R.id.btn1)).setOnClickListener(btnOnClickLinter);
editTextTest = (EditText)findViewById(R.id.EditTxt);
txtViewTest = (TextView)findViewById(R.id.txtView);
stringTxt = editTextTest.getText().toString();
// TestBroadcaseReceiver 註冊
IntentFilter itFile = new IntentFilter(stringTxt);
testBroadcaseRecTest = new TestBroadcaseReceiver();
registerReceiver(testBroadcaseRecTest, itFile);
}
OnClickListener btnOnClickLinter = new OnClickListener() {
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btn1:
test();
}
}
};
public void test() {
//把EditText 的資料指派到strText
String strText = editTextTest.getText().toString();
if(strText.trim().equals("")) {
editTextTest.setError("請輸入訊息");
}else {
//把Intent(stringTxt)數值存職之後判斷"安安"SetText 存直editText直傳給BroadcaseReceiver class
sendBroadcast(new Intent(stringTxt).putExtra("安安", strText));
txtViewTest.setText(stringTxt);
}
}
}
-------------------------------------------------------------
JAVA: TestBroadcaseReceiver
package com.example.user.test;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
/**
* Created by user on 2014/10/30.
*/
public class TestBroadcaseReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
//intent.getStringExtra("安安") 判斷 putExtra ("安安")取得存值得值
String snder = intent.getStringExtra("安安");
Toast.makeText(context,"收到訊息:"+snder,Toast.LENGTH_SHORT).show();
}
}
------------------------------------------------------
執行結果:
留言列表