Android Beginner: электронная почта и строки

1

Я создаю приложение, в котором есть предложение. Когда пользователь вводит информацию в редактирующие тексты, информация извлекается в строковое значение. Строка затем помещается в текст сообщения электронной почты. Однако при отправке письма текст не содержит значений для текстов редактирования.

Вот мой код:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.suggestions);

        Spinner spinner = (Spinner) findViewById(R.id.emailArea);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter
                .createFromResource(this, R.array.email_array,
                        android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

        Button send = (Button) findViewById(R.id.emailSendButton);
        EditText ettext = (EditText) findViewById(R.id.etEmailText);
        EditText returnAddress = (EditText) findViewById(R.id.etReturnAddress);

        String text = ettext.getText().toString();
        String returnAddressText = returnAddress.getText().toString();

        emailText =
                "\n\nArea in the Guide: " + area
                + "\n\nSuggestion or Comment: " + text + 
                "\n\nReturn Address: "+ returnAddressText;

        send.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                Intent emailIntent = new Intent(
                        android.content.Intent.ACTION_SEND);

                emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
                        address);
                emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
                        "Suggestions/Comments: Black Ops 2");
                emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
                        emailText);
                emailIntent.setType("text/plain");

                startActivity(Intent.createChooser(emailIntent, "Send Mail"));
                finish();
            }

        });
    }

    private void showToast() {
        Toast.makeText(this, "Thank you. Your message has been sent.",
                Toast.LENGTH_SHORT).show();// TODO Auto-generated method stub

    }

    public class MyOnItemSelectedListener implements OnItemSelectedListener {

        public void onItemSelected(AdapterView<?> parent, View view, int pos,
                long id) {

            area = areas[pos];
        }

        public void onNothingSelected(AdapterView parent) {

        }
    }
}

Однако, независимо от того, что введено, я всегда получаю пустой текст и значение null для счетчика. Какие-либо предложения?

  • 0
    если вы записываете эту строку emailText, что она выводит? Я не могу понять, почему, но, возможно, новая строка вызывает проблемы. если вынуть первые 2, что-нибудь изменится. «Площадь .....» вместо «\ n \ nArea ...»
Теги:
android-layout
android-intent

1 ответ

0
Лучший ответ

Получите значения EditText внутри onClickListener и используйте это.

EditText etText;
EditText returnAddress;
public void onCreate(Bundle savedInstanceState) {
    //....
    Button send = (Button) findViewById(R.id.emailSendButton);
    etText = (EditText) findViewById(R.id.etEmailText);
    returnAddress = (EditText) findViewById(R.id.etReturnAddress);
     send.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            String text = etText.getText().toString();
            String returnAddressText = returnAddress.getText().toString();

            emailText =
                "\n\nArea in the Guide: " + area
                + "\n\nSuggestion or Comment: " + text + 
                "\n\nReturn Address: "+ returnAddressText;

            Intent emailIntent = new Intent(
                    android.content.Intent.ACTION_SEND);

            emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
                    address);
            emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
                    "Suggestions/Comments: Black Ops 2");
            emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
                    emailText);
            emailIntent.setType("text/plain");

            startActivity(Intent.createChooser(emailIntent, "Send Mail"));
            finish();
        }

    });
    //...
}
  • 0
    Спасибо за вашу помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню