1

受信したSMSのAndroidのブロードキャストレシーバーのテキストビューからインスタンスを取得したい. SMSをテキストビューに表示して「textview.settext("SmsContentEtc")」から使用したいのですが、クラスの作成メソッドを使用しているため、テキストビューからインスタンスを取得できません!!!!

public class SmsReceiver extends BroadcastReceiver
{
    private TextView txtshow;
     @Override
        public void onReceive(Context context, Intent intent) 
        {       
            //---get the SMS message passed in---
            Bundle bundle = intent.getExtras();        
            SmsMessage[] msgs = null;
            String str = "";            
            if (bundle != null)
            {
                //---retrieve the SMS message received---
                Object[] pdus = (Object[]) bundle.get("pdus");
                msgs = new SmsMessage[pdus.length]; 
                for (int i=0; i<msgs.length; i++){
                    msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);                         
                    str += "SMS from " + msgs[i].getOriginatingAddress();                     
                    str += " :";
                    str += msgs[i].getMessageBody().toString();
                    str += "\n";  `enter code here`
                }
                //---display the new SMS message---
               //Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
                txtshow.setText("smsContentEtc");
            }                         
        }
    }
4

1 に答える 1

0

テキストをインテントに入れて、そのインテントをアクティビティに送信します。

  1. アクティビティが実行されていない場合は作成され、インテントからテキストを取得してテキスト ビューに表示する必要があります。

  2. アクティビティがすでに実行されている場合、アクティビティの起動モードに基づいて、アクティビティが新しいインテントを取得するか、アクティビティの新しいインスタンスがインテントで呼び出されます。

于 2012-10-22T10:23:45.377 に答える