获取编辑文本字段的值
我正在学习如何创建 UI 元素。我创建了一些 EditText 输入字段。单击按钮时,我想捕获输入到该输入字段中的内容。
<EditText android:id="@+id/name" android:width="220px" />
那是我的领域。我怎样才能获取内容?
I am learning how to create UI elements. I have created a few EditText input fields. On the click of a Button I want to capture the content typed into that input field.
<EditText android:id="@+id/name" android:width="220px" />
That's my field. How can I get the content?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(13)
通过使用 getText():
By using getText():
从 android 中的
EditText
控件获取值。EditText
getText
属性用于获取EditText
的值:Get value from an
EditText
control in android.EditText
getText
property use to get value anEditText
:我想您在调用 EditText 对象的“mEdit”时必须使用此代码:
myActivity.this.mEdit.getText().toString()
只需确保编译器知道哪个
EditText
来调用和使用。I guess you will have to use this code when calling the "mEdit" your EditText object :
myActivity.this.mEdit.getText().toString()
Just make sure that the compiler know which
EditText
to call and use.我希望这个能起作用:
我尝试了
Integer.getInteger()
方法而不是valueOf()
- 它不起作用。I hope this one should work:
I tried
Integer.getInteger()
method instead ofvalueOf()
- it didn't work.您可能还想看看黄油刀。它的目的是通过使用注释来减少样板代码的数量。这是一个简单的示例:
只需将以下依赖项添加到您的
build.gradle
中:作为替代方案,还有 AndroidAnnotations 。
You might also want to take a look at Butter Knife. It aims at reducing the amount of boilerplate code by using annotation. Here is a simple example:
Just add the following dependency to your
build.gradle
:As an alternative there is also AndroidAnnotations.
最短&最简单
getText(editText);
getText(button);
getText(textView);
小解决方法
只需在 BaseActivity 中创建方法/创建 BaseActivity(如果没有)。
并通过此 BaseActivity 扩展您的所有活动。
请注意,
EditText
、Button
扩展了TextView
,因此我仅创建了getText(TextView tv)
。Shortest & Simplest
getText(editText);
getText(button);
getText(textView);
Little Workaround
Just make method in your BaseActivity / create BaseActivity if you don't have.
And extend your all activities by this BaseActivity.
Note that
EditText
,Button
extendsTextView
, so I created onlygetText(TextView tv)
.字符串值 = YourEditText.getText().toString;
String value = YourEditText.getText().toString;
更高级的方法是使用 Butterknife BindView。这消除了冗余代码。
在你的 gradle 的依赖项下;添加这2行。
然后同步。
MainActivity 中绑定 edittext 的示例
但是,一旦您感觉更舒服或开始处理大量数据,这就是一个替代方案。
A more advanced way would be to use butterknife bindview. This eliminates redundant code.
In your gradle under dependencies; add this 2 lines.
Then sync up.
Example binding edittext in MainActivity
But this is an alternative once you feel more comfortable or starting to work with lots of data.
步骤 1:创建名称为 Activity_main.xml 的布局
步骤 2:创建类 Main.class
step 1 : create layout with name activity_main.xml
Step 2 : Create class Main.class
如果您使用 Kotlin 并希望使其通用,您可以使用扩展函数 Extension function
:
并直接从 EditText 调用此方法
If you are using Kotlin and wants to make it generic you can use the Extension function
Extension function:
and call this method directly from your EditText
试试这个代码
Try this code