【问题标题】:transfer / send string variables from one java class to other in android将字符串变量从一个java类传输/发送到android中的另一个
【发布时间】:2017-12-19 14:38:40
【问题描述】:

下面的代码提供了我收件箱中的电话号码和消息.... 我需要将电话号码和消息转移/发送给android中的其他java class(不是活动,而是课程),以便保存在db .

这可能是一个基本问题,但我无法解决 如果有人能帮忙……那就太好了

主要活动:

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

import static android.telephony.SmsMessage.createFromPdu;

public class IncomingSms extends BroadcastReceiver {


    String p,m;

    final SmsManager sms = SmsManager.getDefault();


    public void onReceive(Context context, Intent intent) {

        Bundle extras = intent.getExtras();

        if (extras != null) {
            Object[] smsExtra = (Object[]) extras.get( "pdus" );
            ContentResolver contentResolver = context.getContentResolver();

            for (int i = 0; i < smsExtra.length; ++i) {

                SmsMessage sms = createFromPdu( (byte[]) smsExtra[i] );

                String phoneNumber = sms.getDisplayOriginatingAddress();
                String message = sms.getDisplayMessageBody();

                try {
                    if (phoneNumber.contains( "+92xxxxxxxxxx" )) {   //add phone number
                        int duration = Toast.LENGTH_LONG;
                        Toast toast = Toast.makeText( context,
                                "senderNum: " + phoneNumber + ", message: " + message, duration );
                        toast.show();

                        p=phoneNumber;
                        m=message;

                    }
                } catch (Exception e) {
                }

            }
        }
    }
}

【问题讨论】:

  • 您能详细说明您的问题吗? “发送到android中的其他Java类”是什么意思?
  • “送去上课”是什么意思?在 Java 中,您不能“发送到类”。您可以设置: - 类静态属性(或调用静态方法)、对象的实例属性(或调用实例方法)。
  • @TomMac 我有 2 个类 A 和 B,A 类包含我的数据库代码,B 包含我也想存储在数据库中的数据......所以我需要从类发送我的数据B 到 A 类,所以我可以将它添加到我的数据库中.....上面给出了 B 类代码
  • @Vadim 我有 2 个类 A 和 B,A 类包含我的数据库代码,B 包含我也想存储在数据库中的数据......所以我需要从类发送我的数据B 到 A 类,所以我可以将它添加到我的数据库中.....上面给出了 B 类代码

标签: java android class


【解决方案1】:

假设您有一个类可以处理所有与数据库相关的查询,名为: 数据库查询 如果你想保存你的消息和号码,那么你的 DBQueries 类应该有一个方法如下:

public class DBQueries {
    public void save(String number, String message) {
        //Your db insertion code here
    }
}

现在在你上面的代码中,调用这个方法如下:

public class IncomingSms extends BroadcastReceiver {

    String p,m;

    final SmsManager sms = SmsManager.getDefault();

    public void onReceive(Context context, Intent intent) {

        Bundle extras = intent.getExtras();

        if (extras != null) {
            Object[] smsExtra = (Object[]) extras.get( "pdus" );
            ContentResolver contentResolver = context.getContentResolver();

            for (int i = 0; i < smsExtra.length; ++i) {

                SmsMessage sms = createFromPdu( (byte[]) smsExtra[i] );

                String phoneNumber = sms.getDisplayOriginatingAddress();
                String message = sms.getDisplayMessageBody();

                try {
                    if (phoneNumber.contains( "+92xxxxxxxxxx" )) {   //add phone number
                        int duration = Toast.LENGTH_LONG;
                        DBQueries dbQueries = new DBQueries();
                        dbQueries.save(phoneNumber, message);
                        Toast toast = Toast.makeText( context,
                                "senderNum: " + phoneNumber + ", message: " + message, duration );
                        toast.show();

                        p=phoneNumber;
                        m=message;

                    }
                } catch (Exception e) {
                }

            }
        }
    }
}

【讨论】:

    【解决方案2】:

    如果您的activity 命名为ReceiveText,那么在您的BroadcastReceiver 中,您应该执行以下操作:

    Intent i = new Intent(context, ReceiveText.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.putExtra("message", message.getMessageBody());
    context.startActivity(i);
    

    然后,在您的activity 中,您将需要getExtra 如下:

    Intent intent = getIntent();
    String message = intent.getStringExtra("message");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      相关资源
      最近更新 更多