簡體   English   中英

清除 EditText 字段按鈕中的所有文本

[英]Clear all text in EditText fields button

我正在嘗試在 Android 中運行一個程序,以在用戶按下全部清除按鈕時清除 EditText 字段中的所有文本。 下面是我到目前為止的代碼,目前它沒有按計划工作。 我是java和adroid應用程序開發的新手。 如果可能,請舉例說明如何解決此問題。 提前謝謝了。

CEMMainActivity.java

public class CEMMainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) { // runs every time the app runs
    super.onCreate(savedInstanceState); // loads saved instant state
    setContentView(R.layout.activity_cemmain);//sets what the app will look like based on the graphical design created

    if (savedInstanceState == null) {// action if app does not start up correctly
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }

    // Clears all text in EditText fields

    Button clearalltext  = (Button) findViewById(R.id.cleartext); 
    clearalltext.setOnClickListener(new OnClickListener() {
        public void onClick(View c) {           
        ViewGroup group = (ViewGroup) findViewById(R.id.cleartext);
        clearText(group);       
        });
    }

        private void clearText((ViewGroup)group); {
            // TODO Auto-generated method stub
            for (int i = 0, count = group.getChildCount(); i < count; ++i) {
        View view = group.getChildAt(i);
        if (view instanceof EditText) {
            ((EditText)view).setText("");

        ViewGroup view;
        if(view instanceof ViewGroup && (((ViewGroup)view).getChildCount() > 0))
            clearText((ViewGroup)group);
        }
        }
            }

fragment_cemmain.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="clinical.equipment.monitor.CEMMainActivity$PlaceholderFragment" >
.....

<Button
    android:id="@+id/cleartext"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/findequip"
    android:layout_marginTop="56dp"
    android:onClick="cleartext"
    android:text="@string/cleartext" />

....

</RelativeLayout>

(ViewGroup) findViewById(R.id.cleartext); 我認為明文是按鈕而不是視圖組,您可以使用 onclick 參數參數 c 的 getParent() 方法,例如c.getParent()返回 ViewGroup 相對布局,然后您可以獲取由您在 clearText 方法中定義的所有子項...

或者你也可以給相對布局提供 id

  // Clears all text in EditText fields

    Button clearalltext  = (Button) findViewById(R.id.cleartext); 
    clearalltext.setOnClickListener(new OnClickListener() {
        public void onClick(View c) {           
        ViewGroup group = (ViewGroup) c.getParent();
        clearText(group);       
        });
    }

我認為您的問題是將按鈕 id 傳遞給查看組,因此其子計數將為零。請將父布局 id 傳遞給查看組。 更改以下 ID

ViewGroup group = (ViewGroup) findViewById(R.id.cleartext);

用您的父布局 ID 替換明文。 即相對布局 ID

 ViewGroup group = (ViewGroup) findViewById(R.id.cleartext); 

它將訪問按鈕並且只會清除按鈕的文本。 為 RelativeLayout 分配一個 id 並使用它來清除所有孩子的文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM