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

------------------------------------------------------

執行結果:

android 執行結果未命名a  

arrow
arrow
    文章標籤
    android intent
    全站熱搜

    Xauxas 發表在 痞客邦 留言(0) 人氣()