首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android表单重置?

Android表单重置?
EN

Stack Overflow用户
提问于 2011-08-10 23:15:07
回答 3查看 5.6K关注 0票数 1

我有一个简单的计算器,它有6个EditText视图,用户可以在其中输入数字来执行简单的数学函数。这个应用程序将满足重复的任务,其中用户将输入信息,按下提交按钮,答案显示在一个单独的textView中。

我想添加一个简单的“清除”按钮,它将重置表单,以便用户可以开始新的计算,EditText视图将再次显示用户输入的提示。

有没有一个“重置”类型的功能,可以清除所有的表单数据并重新加载提示,或者我必须杀死应用程序并重新启动它?如果是这样的话,怎样做才是一个好的起点呢?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2011-08-10 23:19:30

要做到这一点,最基本的方法是简单地重置EditText视图。如果您有驱动这些字段更新的逻辑,那么将它们重置为空的String并请求“重新计算”来更新提示。

如下所示:

代码语言:javascript
复制
private void onClear()
{
    EditText firstField = (EditText)this.findById(R.id.firstField);
    EditText secondField = (EditText)this.findById(R.id.secondField);
    //...etc...
    if (firstField != null) firstField.setText("");
    if (secondField != null) secondField.setText("");

    updateHints();
}

private void updateHints()
{
    //Logic for your "hints"
}
票数 2
EN

Stack Overflow用户

发布于 2011-08-10 23:20:55

不,你必须自己去实现它。我建议您使用要重置的所有EditTexts (R.id.xyz)的ID创建一个整型数组。然后创建一个循环,对数组中的每个EditTexts执行.setText()操作,您可以在每次希望清除字段时调用该循环。类似于:

代码语言:javascript
复制
private void resetFields() {
    EditText temp;

        for (int i = 0; i < myEditTexts.length; i++) {
            temp = (EditText) findViewById(textViews[i]);
        temp.setText("");
    }
}
票数 1
EN

Stack Overflow用户

发布于 2014-06-10 10:12:04

我的答案是一种更好的方法,但它仍然是一种硬编码。任何人都可以找到另一种更快的方法,请分享。

代码语言:javascript
复制
protected void clearForm() {
    Button btnClear = (Button) findViewById(R.id.btn_clear_text);
    btnClear.setOnClickListener(new View.OnClickListener() {            
        @Override
        public void onClick(View v) {

            EditText temp;      
            final int[] txtId = new int[] {
                R.id.txt_s_free_word,
                R.id.txt_s_property_name,
                R.id.txt_s_ad_expense_from,
                R.id.txt_s_ad_expense_to,
                R.id.txt_s_station
            };

            for (int i = 0; i < txtId.length; i++) {
                temp = (EditText) findViewById(txtId[i]);
                temp.setText(null);
            }
        }
    });
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7013228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档