Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用从一个类到另一个类的变量_Android_Android Intent - Fatal编程技术网

Android 使用从一个类到另一个类的变量

Android 使用从一个类到另一个类的变量,android,android-intent,Android,Android Intent,我想在RevieveSMS.class的主类中使用vaiable。 这是我的ReceiveSMS.class代码,我想在主界面中使用messageBody。 帮我怎么做。谢谢 package com.formation.gmaps; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; i

我想在RevieveSMS.class的主类中使用vaiable。 这是我的ReceiveSMS.class代码,我想在主界面中使用messageBody。 帮我怎么做。谢谢

package com.formation.gmaps;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class ReceiveSMS  extends BroadcastReceiver
{
 private final String   ACTION_RECEIVE_SMS  = "android.provider.Telephony.SMS_RECEIVED";

 @Override
 public void onReceive(Context context, Intent intent)
 {
 if (intent.getAction().equals(ACTION_RECEIVE_SMS))
 {
 Bundle bundle = intent.getExtras();
 if (bundle != null)
 {
 Object[] pdus = (Object[]) bundle.get("pdus");

 final SmsMessage[] messages = new SmsMessage[pdus.length];
 for (int i = 0; i < pdus.length; i++)  {  messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);  }  if (messages.length > -1)
 {
 final String messageBody = messages[0].getMessageBody();
 final String phoneNumber = messages[0].getDisplayOriginatingAddress();

 Toast.makeText(context, "Expediteur : " + phoneNumber, Toast.LENGTH_LONG).show();
 Toast.makeText(context, "Message : " + messageBody, Toast.LENGTH_LONG).show();



 }
 }
 }

 }

}
package com.formation.gmaps;
导入android.content.BroadcastReceiver;
导入android.content.Context;
导入android.content.Intent;
导入android.os.Bundle;
导入android.telephony.sms消息;
导入android.widget.Toast;
公共类ReceiveSMS扩展广播接收器
{
私有最终字符串操作\u RECEIVE\u SMS=“android.provider.Telephony.SMS\u RECEIVED”;
@凌驾
公共void onReceive(上下文、意图)
{
if(intent.getAction().equals(ACTION\u RECEIVE\u SMS))
{
Bundle=intent.getExtras();
if(bundle!=null)
{
Object[]pdus=(Object[])bundle.get(“pdus”);
最终SmsMessage[]消息=新SmsMessage[pdus.length];
对于(int i=0;i-1)
{
最后一个字符串messageBody=消息[0]。getMessageBody();
最后一个字符串phoneNumber=消息[0]。getDisplayOriginatingAddress();
Toast.makeText(上下文,“Expeditor:+phoneNumber,Toast.LENGTH_LONG).show();
Toast.makeText(上下文,“Message:+messageBody,Toast.LENGTH_LONG).show();
}
}
}
}
}

您可以将
messageBody
放入

在ReceiveSMS类中:

SharedPreferences prefs = getSharedPreferences("yourPrefs", 0);

SharedPreferences.Editor editor = prefs.edit();
editor.putString("messageBody", messageBody);
editor.commit();
在你的主课上:

SharedPreferences prefs = getSharedPreferences("yourPrefs", 0);
String messageBody = prefs.getString("messageBody","defaultValue");

我在哪里可以找到messageBody的内容?在ReceiveSMS类中的
onReceive
方法中,将messageBody放入编辑器中,然后您可以通过为“主类”编写部分,在应用程序中的任何位置访问其内容