如何从EditText获取文本?

Boh*_*ian 24 user-interface android android-edittext

问题很简单.但我想知道我们究竟在哪里引用gui元素?至于哪个是定义的最佳位置:

final EditText edit =  (EditText) findViewById(R.id.text_xyz);
 edit.getText.tostring();
Run Code Online (Sandbox Code Playgroud)

当我在默认的oncreate()内部尝试时,我得到空值.因此,对于最佳实践,您是否建议使用单独的类来引用main.xml中已定义的gui元素.从这里我们可以调用这些元素的各种方法,如gettext或settext?

小智 23

我相信你问题的最快解决方案就是你在你的问题上缺少括号getText.只需添加()即可edit.getText().toString()解决问题


Ram*_*mps 17

那么,这取决于你的需求.我经常在活动中保留对小部件的引用(作为类字段) - 并在onCreate方法中设置它们.我认为这是一个好主意,
也许你空的理由是,你试图调用findViewById()您之前设置contentView()你的onCreate()方法-请检查.


Rya*_*ord 13

如果在setContentView()方法调用之前执行此操作,则值将为null.

这将导致null:

super.onCreate(savedInstanceState);

Button btn = (Button)findViewById(R.id.btnAddContacts);
String text = (String) btn.getText();

setContentView(R.layout.main_contacts);
Run Code Online (Sandbox Code Playgroud)

虽然这样可以正常工作:

super.onCreate(savedInstanceState);
setContentView(R.layout.main_contacts);

Button btn = (Button)findViewById(R.id.btnAddContacts);
String text = (String) btn.getText();
Run Code Online (Sandbox Code Playgroud)