2

我进行了搜索以查看如何清除 EditText 框,并找到了许多结果,都同意。我为盒子创建了一个变量:

final EditText fn = (EditText) findViewById(R.id.editText1);

然后我就这样使用 setText :

fn = setText("");

但是,当我在 Eclipse 中实现此代码时(安装了所有插件和 sdk),我收到错误消息:“方法 setText(String) 未定义新 View.OnClickListener() {} 类型”

我究竟做错了什么?是否有一些我在其他帖子中没有提到的步骤?

4

2 回答 2

0

为了完整起见:

这部分:

final EditText fn = (EditText) findViewById(R.id.editText1);

是正确的,前提是您当前运行的 Activity 的布局包含 ID 为“editText1”的 EditText 的声明,这里是此类布局文件的示例。此布局文件称为“ my_layout ”:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>

在您的活动中,您必须在 onCreate 中调用此方法以将上述布局文件设置为活动的布局文件:

public abstract class MyActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
         setContentView(R.layout.my_layout);
   }

鉴于上述情况,您现在可以重置 EditText 中的文本(称为“fn” - 请参阅第一个代码片段):

fn.setText("");

您遇到的错误说 OnClickListener 中不存在 setText 方法,这可能源于您尝试在该 OnClickListener 中调用 setText("")。正如错误消息所解释的: OnClickListener 对 setText 方法一无所知 - 只有 EditText 知道它,因此您需要在 EditText 的引用上调用 setText("")。

于 2013-03-25T14:04:10.493 回答
0

看起来您是setText在 a 的代码中调用Listener"settext" = "this.settext"在这种情况下, this 指向那个听众。尝试调用:

MyClassInWhichAllThisCodeIs.this.getThatEditTextRefference().setText("").
于 2014-07-04T08:30:22.477 回答