用于编辑文本的Android onClick函数,如何调用edittext?

时间:2014-01-17 19:48:42

标签: android onclick android-edittext

我有一个可以填充的edittext表单,我想在文本的onClick上清除它,所以我将一个onClick转到main中的clear函数。

但是,我不知道如何正确定位我想要的edittext。我想清除其中的两个。

public void clear(View v) {
    @+id/toptext.setText("");

} 

这是该特定文本的XML。

<TextView
android:id="@+id/toptext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#303030"
android:text="@string/toptext"
android:textAppearance="?
android:attr/textAppearanceLarge"
android:textColor="#33B5E5"
android:textSize="50sp"
android:onClick="clear"  />

6 个答案:

答案 0 :(得分:2)

使用xml布局中的EditTexts的id创建EditTexts的实例。然后对它们使用setText并将它们留空。

public void clear(View v) {

    EditText et = (EditText)findViewById(R.id.theIdOfYourEditText);
    EditText et2 = (EditText)findViewById(R.id.theIdOfYourOtherEditText);
    et.setText("");
    et2.setText("");
} 

编辑由于某种原因,上述方法无效。这是最终的解决方案:

// Put one of these in your onCreate method:

TextView tt = (TextView)findViewById(R.id.toptext);
tt.setOnTouchListener(new View.OnTouchListener() { 
    @Override
    public boolean onTouch(View v, MotionEvent event) {

        EditText et = (EditText)findViewById(R.id.theIdOfYourEditText);
        EditText et2 = (EditText)findViewById(R.id.theIdOfYourOtherEditText);
        et.setText("");
        et2.setText("");

        return true;
    }
});

// or

TextView tt = (TextView)findViewById(R.id.toptext);
tt.setOnClickListener(new View.OnClickListener() { 
    @Override
    public void onClick(View v) {

        EditText et = (EditText)findViewById(R.id.theIdOfYourEditText);
        EditText et2 = (EditText)findViewById(R.id.theIdOfYourOtherEditText);
        et.setText("");
        et2.setText("");
    }
});

答案 1 :(得分:1)

试试这个:

TextView tv = (TextView) findViewById(R.id.toptext);
tv.setText("Whatever you want!");

答案 2 :(得分:1)

您可以使用此代码:

public void clear(View v) {
    if (v.getId() == R.id.toptext) {
        ((EditText) v).setText(null);
    }
}

同样,为另一个EditText添加另一个if条件。

答案 3 :(得分:0)

首先,通过调用findViewById:

来引用TextView
TextView textView = (TextView) findViewById(R.id.toptext);

然后用它来清除:

textView.setText("");

答案 4 :(得分:0)

我认为不应该设置“”,而应该使用null作为。

TextView textView = (TextView) findViewById(R.id.toptext);
textView.setText(null);

答案 5 :(得分:0)

使用传递给paramonClick()

v
public void clear(View v) 
{
    ((TextView)v).setText("");
}

假设您要清除TextView中附有onClick的文字。传入View的{​​{1}}是点击的clear(),因此您只需将其投放到相应的ViewView),然后就可以正常使用它

因此,这将清除单击TextView的文本。