-3

我想将一个字符串变量从一个活动传递到另一个活动,但对我不起作用,我想将字符串从主活动发送到 sendms 活动。发送字符串应在短信部分设置。

主要活动.java

@Override
    public void onClick(View v) {
        StringBuffer sb = new StringBuffer();

        // Retrive Data from list
        for (Application bean : items) {

            if (bean.isSelected()) {
                sb.append(Html.fromHtml(bean.getContent()));
                sb.append(",");
            }
        }

        showAlertView(sb.toString().trim());

    }

    @SuppressWarnings("deprecation")
    private void showAlertView(String str) {
        AlertDialog alert = new AlertDialog.Builder(this).create();
        final String strContactList = str.substring(0, str.length() - 1);
        if (TextUtils.isEmpty(str)) {
            alert.setTitle("Not Selected");
            alert.setMessage("No One is Seleceted!!!");
        } else {
            // Remove , end of the name


            alert.setTitle("Selected");
            alert.setMessage(strContactList);
        }
        alert.setButton("sms", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                //sendSMS();
                /*Intent sendIntent = new Intent(Intent.ACTION_VIEW);
                sendIntent.putExtra("sms_body", strContactList); 
                sendIntent.setType("vnd.android-dir/mms-sms");
                startActivity(sendIntent);*/
                Intent intent1=new Intent(MainActivity.this,SendSMSActivity.class);
                intent1.putExtra("firstkeyName", strContactList);
                startActivity(intent1);

            }


        });

从主要活动发送一个字符串到sendmsactivity.java

发送msactivity.java

public class SendSMSActivity extends Activity {

    Button buttonSend;
    EditText textPhoneNo;
    EditText textSMS;
    String sms;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about);

        buttonSend = (Button) findViewById(R.id.buttonSend);
        textPhoneNo = (EditText) findViewById(R.id.editTextPhoneNo);
        textSMS = (EditText) findViewById(R.id.editTextSMS);



        Bundle extras = getIntent().getExtras();
        if(extras !=null) {
             sms = extras.getString("firstkeyName");
        }
        buttonSend.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

              String phoneNo = textPhoneNo.getText().toString();
              try {
                SmsManager smsManager = SmsManager.getDefault();
                smsManager.sendTextMessage(phoneNo, null, sms, null, null);
                Toast.makeText(getApplicationContext(), "SMS Sent!",
                            Toast.LENGTH_LONG).show();
              } catch (Exception e) {
                Toast.makeText(getApplicationContext(),
                    "SMS faild, please try again later!",
                    Toast.LENGTH_LONG).show();
                e.printStackTrace();
              }

            }
        });
    }
}

在sendmsactivity中,我想从主要活动中获取字符串,它必须设置为发送短信活动的短信正文。我想这样做,但现在我的代码不起作用,它没有从主要活动中获取字符串发送msactivity。

4

3 回答 3

0

您有 firstkeyName 和 firstKeyName 两个不同的键名。即 k 是第一个活动中的资本。只需将其设为常量并从两个活动中访问它。

于 2013-06-06T07:15:11.983 回答
0

这就是你的问题的答案,试一试......

Intent intent1= getIntent(); // gets the previously created intent
final String firstKeyName = intent1.getStringExtra("firstKeyName");
textSMS.setText(firstKeyName);

像这样更改您的 Onclick 功能

smsManager.sendTextMessage(phoneNo, null, firstKeyName, null, null);
于 2013-06-06T10:01:44.417 回答
0

看起来有一个错字是你的临时演员。尝试使用“firstkeyName”。它应该工作。就像是 :

sms = extras.getString("firstkeyName");
于 2013-06-06T07:14:10.690 回答