如何将BroadcastReceiver内容传递给同一Java类中的Activity

时间:2012-02-07 11:23:54

标签: android android-activity android-intent broadcastreceiver

我在定制dailer上工作。到目前为止,我能够让用户选择他想要使用的dailer,但是当他选择我的dailer时,他想要呼叫的号码并没有被贬低;相反,我的活动显示。

我希望它显示根据所选号码拨打电话并显示我的活动。

public class myActivity extends TabsActivity {

private OneActivity bb;
private String oldNumber2;
@Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    class OneActivity extends BroadcastReceiver { 

        public void onReceive(Context context, Intent intent) {                                 
            final String Number1 = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 
            Toast.makeText(context, Number1, Toast.LENGTH_LONG).show();
            Intent dial = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + Number1));
            launch.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(dial);
        }
     } 

当我检查日志时,我发现电话号码已加载到BoradcastReceiver中但未被删除。请帮忙

2 个答案:

答案 0 :(得分:0)

试试这个

Intent dial = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + Number1));
dial.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(dial);

将以下内容添加到清单

<uses-permission android:name = "android.permission.CALL_PHONE"/>

答案 1 :(得分:-1)

您可以将setter / getter方法用于此目的。

请参阅此示例,首先创建一个单独的类文件

public class passData
{
     private String number; 

     public void setNumber ( String number )
     {
         this.number = number;
     }

     public String getNumber ()
     {
         return number;
     }
}

现在你需要使用set方法将Number1变量设置为此类的方法,并且可以从整个项目中将其值输入到任何其他类或活动中。