Java 如何解决此问题:尝试调用虚拟方法';android.text.Editable android.widget.EditText.getText()';关于空对象引用
我已经读了另一篇已经在这里的帖子,但似乎不明白为什么我会出现这个错误。错误在标题中,也在这里:尝试在空对象引用上调用虚拟方法“android.text.Editable android.widget.EditText.getText()” 我试图添加msg=(EditText)v.findviewbyd(R.id.msgTxt);但这仍然没有解决任何问题Java 如何解决此问题:尝试调用虚拟方法';android.text.Editable android.widget.EditText.getText()';关于空对象引用,java,android,android-fragments,Java,Android,Android Fragments,我已经读了另一篇已经在这里的帖子,但似乎不明白为什么我会出现这个错误。错误在标题中,也在这里:尝试在空对象引用上调用虚拟方法“android.text.Editable android.widget.EditText.getText()” 我试图添加msg=(EditText)v.findviewbyd(R.id.msgTxt);但这仍然没有解决任何问题 public class HelpFragment extends Fragment { Button sendEmail; EditText
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"));
}
}
您可以在单击的视图时引用。您应该实现
msg=(EditText)v.findviewbyd(R.id.msgTxt)
beforeonClick()
方法
您应该使用editText.getText().toString()
,因为editText.getText()
返回Editable
我应该在哪里添加>@Beyazid谢谢。我甚至没有意识到这一点,而且我对编码也很陌生,所以感谢您给我的快速响应和解释。
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;
}