如何从Edittext获取文字?
-
21-09-2019 - |
题
问题很简单。但是我想知道我们到底在哪里参考GUI元素?就像最佳定义的地方:
final EditText edit = (EditText) findViewById(R.id.text_xyz);
edit.getText.tostring();
当我尝试在默认启动()内进行操作时,我会得到null值。因此,为了获得最佳实践,您是否建议一个单独的类,用于在main.xml中引用这些已经定义的GUI元素。从这里我们可以调用这些元素的各种方法,例如getText或setText?
解决方案
好吧,这取决于您的需求。通常,我将参考在活动中(作为课堂字段)中的小部件的参考 - 并将其设置在 onCreate
方法。我认为这是个好主意
无效的原因可能是您正在尝试致电 findViewById()
设置之前 contentView()
在你的 onCreate()
方法 - 请检查。
其他提示
我认为最快解决问题的方法是,您只是缺少括号 getText
. 。只需添加 ()
至 edit.getText().toString()
那应该解决
如果您在之前这样做 setContentView()
方法调用,然后值将为null。
这将导致无效:
super.onCreate(savedInstanceState);
Button btn = (Button)findViewById(R.id.btnAddContacts);
String text = (String) btn.getText();
setContentView(R.layout.main_contacts);
虽然这可以正常工作:
super.onCreate(savedInstanceState);
setContentView(R.layout.main_contacts);
Button btn = (Button)findViewById(R.id.btnAddContacts);
String text = (String) btn.getText();
String fname = ((EditText)findViewById(R.id.txtFirstName)).getText().toString();
String lname = ((EditText)findViewById(R.id.txtLastName)).getText().toString();
((EditText)findViewById(R.id.txtFullName)).setText(fname + " "+lname);
将以下内容放在setContentView()方法之后。
final EditText edit = (EditText) findViewById(R.id.Your_Edit_ID);
String emailString = (String) edit.getText().toString();
Log.d("email",emailString);
不隶属于 StackOverflow