0

ユーザーが電話番号を入力することになっている EditView があります。次に、その電話番号を取得して、別のアクティビティで電話/テキストを送信したいと考えています。どうすればそれができますか?

これは私の主な活動の一部です:

    EditText editText = (EditText) findViewById(R.id.editText1);
    editText.setOnClickListener(this);

  }
public void onClick(View src) {
        Intent serviceIntent = new Intent(this, MyService.class);
     switch (src.getId()) {
            case R.id.button1:
              Log.d(TAG, "onClick: starting service");
              EditText editText = (EditText) findViewById(R.id.editText1);
              if (editText.getText().toString()==""){
                  Toast.makeText(getApplicationContext(), "Please enter a  phone number", Toast.LENGTH_SHORT).show();
              } else {
                  pnumber = editText.getText().toString();
                  startService(serviceIntent);  
                  serviceIntent.putExtra(number, pnumber);

              break;
              }

            }
          }

        }

そして、私の他のアクティビティで:

    Bundle extras = this.getIntent().getExtras(); {
    if(extras !=null)
{
    String newnumber = extras.getString(number,pnumber);
    Uri number = Uri.parse(newnumber);
    Intent callIntent = new Intent(Intent.ACTION_CALL, number);
    Intent textIntent = new Intent(Intent.ACTION_SENDTO, number);
}
}

public void onClick(View view) {

    switch (view.getId()) {
    case R.id.button2:
      //Log.d(TAG, "onClick: starting call");
      startActivity(callIntent);
      break;
    case R.id.button3:
        //Log.d(TAG, "onClick: start text message");
        startActivity(textIntent);
        break;
        }       
        }
     }

Uri は "newnumber" を解析し続け、それらの文字を含む数字から作成された電話番号を提供します (たとえば、n は 6 キーにあり、e は 3 キーにあるため、639686237 になります)。変数 number と pnumber を認識します。

4

3 に答える 3

1

次のような 2 つのアクティビティでデータを送信できます。

Intent intent = new Intent(CurrentActivity.this, MyService.class);
intent.putExtra("number", pnumber);
startActivity(intent);

この値は MyService.class で取得できます。

Intent intent = getIntent();
String yourNumber = intent.getStringExtra("number");

または、値をバンドルに入れることができます:

現在の活動では:

Bundle bundle = new Bundle();
bundle.putString("number", pnumber);
bundle.putStirng("name", "yourNameValue");
bundle.putInt("age", "ageValue");
Intent intent = new Intent(CurrentActivity.this, MyService.class);
intent.putExtras(bundle);
startActivity(intent);

そして MyService アクティビティで:

Bundle bundle = getIntent().getExtras();
String number = bundle.getString("number");
String name = bundle.getString("name");
int age = bundle.getInt("age");

お役に立てば幸いです。

于 2013-06-28T14:11:19.850 に答える