Как исправить эту проблему: Попытка вызвать виртуальный метод 'android.text.Editable android.widget.EditText.getText ()' для ссылки на пустой объект - PullRequest
1 голос
/ 16 мая 2019

Я прочитал другой пост, который уже здесь, но не могу понять, почему я получаю эту ошибку. Ошибка в заголовке, и она также здесь: Попытка вызвать виртуальный метод 'android.text.Editable android.widget.EditText.getText ()' для нулевой ссылки на объект

Я пытался добавить msg = (EditText) v.findViewById (R.id.msgTxt); но это все еще ничего не исправило.

public class HelpFragment extends Fragment {
Button sendEmail;
EditText msg;


@Nullable

protected void process(View view) {

    }

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_help, null);
     sendEmail = (Button)v.findViewById(R.id.SendBtn);
      sendEmail.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v){
          msg = (EditText)v.findViewById(R.id.msgTxt);
           String message = msg.getText().toString();
            sendEmail(message);
        }

    });
        return v;
}
    protected void sendEmail(String message){
    String to= new String("em@sd.xo");
    String subject=("a message from app");
    Intent emailIntent = new Intent(Intent.ACTION_SEND);
    emailIntent.putExtra(Intent.EXTRA_EMAIL, to);
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
    emailIntent.putExtra(Intent.EXTRA_TEXT, message);
    emailIntent.setType("message/rfc822");
    startActivity(Intent.createChooser(emailIntent, "Email"));
}

}

1 Ответ

2 голосов
/ 16 мая 2019

Вы ссылаетесь onClick View.Вы должны реализовать msg = (EditText)v.findViewById(R.id.msgTxt); перед onClick() методом

Вы должны использовать editText.getText().toString(), потому что editText.getText() возвращает Editable


public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_help, null);
     sendEmail = (Button)v.findViewById(R.id.SendBtn);
     msg = (EditText)v.findViewById(R.id.msgTxt);

      sendEmail.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v){
           String message = msg.getText().toString();
            sendEmail(message);
        }

    });
        return v;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...