Сохраните данные в электронном письме:

Сохраняйте данные из редактируемых текстов, текстовых представлений, выборок счетчиками и флажков из нескольких действий в электронное письмо:

Я уже использую:

Intent EmailSend = new Intent(android.content.Intent.ACTION_SEND);
    EmailSend.setType("plain/text");
    EmailSend.putExtra(android.content.Intent.EXTRA_TEXT,
      "Pretext"+edittext.getText().toString());

строка ввода не работает для элементов, не перечисленных в .java. Когда я использую последнюю строку, я получаю сообщение об ошибке: -edittext не может быть разрешен-

и как получить данные из флажка и счетчика

У меня будет 80 или около того элементов, которые нужно скомпилировать в это электронное письмо по 8 действиям.


person SLYtiger    schedule 16.05.2011    source источник


Ответы (1)


Я написал отрывок, чтобы немного его автоматизировать:

ViewGroup     root = (ViewGroup) ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0);
StringBuilder str  = new StringBuilder();

public void extractText(ViewGroup root, StringBuilder str){
    int count = root.getChildCount();
    for(int i = 0; i < count; i++) {
        View v = root.getChildAt(i);

        if(v instanceof Spinner) {
            str.append(i).append(" Spinner: ").append(((Spinner) v).getSelectedItem());
        } else if(v instanceof TextView) {
            str.append(i).append(" TextView: ").append(((TextView) v).getText());
        } else if(v instanceof CheckBox) {
            str.append(i).append(" Checkbox: ").append(((CheckBox) v).isChecked());
        }else if(v instanceof ViewGroup){
            extractText((ViewGroup)v, str);
        }
    }
}
person pawelzieba    schedule 16.05.2011
comment
@dziobas Я поместил это в EXTRA_TEXT,? - person SLYtiger; 17.05.2011
comment
Здесь пример отправки электронной почты. - person pawelzieba; 17.05.2011
comment
Код намерения у меня в порядке. . . . Я не понимаю ваш ответ, пожалуйста, объясните - person SLYtiger; 17.05.2011
comment
Вау, кажется, что ответы людей иногда слишком сложны для реальной проблемы. . . Все, что мне нужно было сделать, это добавить это в класс: private EditText edittext; и добавьте это в OnCreate: edittext = (EditText) findViewById (R.id.edittext); теперь это работает как шарм - person SLYtiger; 17.05.2011
comment
@dziobas Если вы не возражаете, я все же хотел бы лучше понять ваш первый пост. . . где это используется и как это работает - person SLYtiger; 17.05.2011
comment
Я не мог поверить, что у вас не было экземпляра edittext :). Я думал, что проблема в большом количестве элементов, поэтому я написал метод для автоматизации извлечения данных из счетчиков, текстовых представлений и флажков из корневого представления активности в строку. Надеюсь, это вам поможет. - person pawelzieba; 17.05.2011
comment
@dziobas да, спасибо, если я могу попросить дополнительный совет ... У меня ничего не написано для этого, поэтому предположим, что у меня была глупость раньше :( но мне нужно получить счетчик, изменить текст и информацию о флажке из одного действия и поместить его в то же электронное письмо об основной деятельности ... начиная с нуля ... как мне это сделать? - person SLYtiger; 17.05.2011
comment
Это должно помочь: Передача данных между действиями - person pawelzieba; 17.05.2011
comment
@dziobas что мне поставить за ключ и значение ??? получение ошибки о том, что ключ и значение не могут быть преобразованы в переменную - person SLYtiger; 17.05.2011
comment
Не знаю, какой ключ и какое значение. - person pawelzieba; 17.05.2011