0

AndroidのJavaで古い変数を使用して新しい変数を定義するにはどうすればよいですか? 私が話しているのは、このコードの文字列to, message, subjectと、等号の右側にいくつかのプレースホルダー名がある部分です。textSubjectetc などの値を、以前に定義した関連変数に変更する方法を知る必要があります。それらを完全に交換すると、何らかの理由で機能しません。

また、その直前に onClick メソッドを使用しない理由がわかりません。これがコードです。

public class RefillActivity extends Activity {
    public String name;
    public String birthday;
    public String prescriptionOptions;
    public String notes;
    public String number;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.refill_activity_main);
    sendRefillRequest();
    Button submit = (Button) findViewById(R.id.ButtonSendRefillRequest);
    submit.setOnClickListener(new View.onClickListener() {

        @Override
        public void onClick(View view) {

            String to = textTo.getText().toString();
            String message = textMessage.getText().toString();
            String subject = name.getText().toString();

            Intent mEmail = new Intent(Intent.ACTION_SEND);
            mEmail.putExtra(Intent.EXTRA_EMAIL, new String[]{"test@example.com"});
            mEmail.putExtra(Intent.EXTRA_SUBJECT, subject);
            mEmail.putExtra(Intent.EXTRA_TEXT, message);

            // prompts to choose email client
            mEmail.setType("message/rfc822");
            startActivity(Intent.createChooser(mEmail, "Choose an email client to send your feedback!"));
            }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.refill, menu);
    return true;
}
public void sendRefillRequest(){
    final EditText nameField = (EditText) findViewById(R.id.EditTextName);
    name = nameField.getText().toString();
    final EditText birthdayField = (EditText) findViewById(R.id.EditTextBirthday);
    birthday =  birthdayField.getText().toString();
    final EditText numberField = (EditText) findViewById(R.id.EditTextPrescriptionNumber);
    number = numberField.getText().toString();
    final Spinner prescriptionOptions = (Spinner) findViewById(R.id.SpinnerPrescriptionOptions);
    this.prescriptionOptions = prescriptionOptions.getSelectedItem().toString();
    final EditText notesField = (EditText) findViewById(R.id.EditTextSpecialNotes);
    notes = notesField.getText().toString();
}

}

4

1 に答える 1

2

これらのメソッドのローカル変数として変数を定義しています。それらをメンバー変数にします

public class RefillActivity extends Activity {
public String name;
public String birthday;
public String prescriptionOptions;
public String notes;
public String number;

 EditText nameField;     // define them here
EditText birthdayField; 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.refill_activity_main);
    sendRefillRequest();
    Button submit = (Button) findViewById(R.id.ButtonSendRefillRequest);
    submit.setOnClickListener(new View.onClickListener() {

それらをメンバー変数として定義し、それらを初期化しsendRefillRequest()てアクセスできるようにします

また、sendRefillRequest()メソッドで変数を次のように定義すると、String変数finalにアクセスできるようになりますonClick

これで「... onClick メソッドを使用しない理由...」の問題が解決しない場合は、それについてもう少し具体的に説明してください。それは何をしている/していないのですか?クリックしたときに入力されるかどうかを確認するために、そこにブレークポイントを配置しますButtonか?

于 2013-05-27T02:36:03.413 に答える