2014-01-25 81 views
1

謝謝你的幫助!我需要閱讀教程。 :)我點擊我的清除按鈕,它不起作用

我知道這可能是小學,你可以告訴我是一個新手。我將我的代碼與其他人進行了比較,沒有發現任何錯誤。謝謝!輸入數據後單擊清除Button時,我的編輯字段不會被清除。

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button clear = (Button)findViewById(R.id.btn_clear); 
    clear.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) 
     { 
      EditText potsize = (EditText) findViewById(R.id.et_pot_size); 
      EditText tocall = (EditText) findViewById(R.id.et_to_call); 
      EditText bepercent = (EditText) findViewById(R.id.et_be_per); 
      potsize.setText(""); 
      tocall.setText(""); 
      bepercent.setText(""); 
      TextView potoddscalc = (TextView)findViewById(R.id.tv_pot_odds_calc); 
      potoddscalc.setText("5"); 
     } 
    }); 
} 

XML:

RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    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=".MainActivity" > 

    <requestFocus /> 

<TextView 
    android:id="@+id/tv_be_per" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/tv_to_call" 
    android:layout_below="@+id/tv_to_call" 
    android:layout_marginTop="34dp" 
    android:text="@string/BE_Per" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/tv_to_call" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/tv_pot_size" 
    android:layout_below="@+id/tv_pot_size" 
    android:layout_marginTop="33dp" 
    android:text="@string/to_call" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/tv_pot_size" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="16dp" 
    android:text="@string/pot_size" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/tv_pot_odds_calc" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/et_be_per" 
    android:layout_alignTop="@+id/tv_pot_odds" 
    android:ems="8" /> 

<EditText 
    android:id="@+id/et_pot_size" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignTop="@+id/tv_pot_size" 
    android:layout_marginLeft="18dp" 
    android:layout_toRightOf="@+id/tv_pot_odds" 
    android:ems="10" /> 

<EditText 
    android:id="@+id/et_to_call" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/et_pot_size" 
    android:layout_alignTop="@+id/tv_to_call" 
    android:ems="10" /> 

<EditText 
    android:id="@+id/et_be_per" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/et_to_call" 
    android:layout_alignTop="@+id/tv_be_per" 
    android:ems="10" /> 

<TextView 
    android:id="@+id/tv_pot_odds" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/tv_be_per" 
    android:layout_below="@+id/et_be_per" 
    android:layout_marginTop="20dp" 
    android:text="@string/pot_odds" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btn_clear" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignRight="@+id/tv_pot_odds_calc" 
    android:layout_below="@+id/tv_pot_odds_calc" 
    android:layout_marginTop="24dp" 
    android:text="@string/clear_button" /> 

<Button 
    android:id="@+id/btn_calc" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/btn_clear" 
    android:layout_alignBottom="@+id/btn_clear" 
    android:layout_alignLeft="@+id/tv_pot_odds_calc" 
    android:text="@string/calc_button" /> 

+0

你得到任何錯誤?怎麼了? – codeMagic

+0

確保你沒有弄亂名稱...檢查你是否點擊了帶有文本@ string/clear_button的按鈕。如果您也這樣做,請告訴我們您是否收到任何錯誤。檢查logcat中是否存在錯誤,如果有任何錯誤 –

回答

1

試試這個。我相信您的問題可能是由於每次單擊清除按鈕時創建新的EditTextsTextView對象。在下面的代碼中,在OnCreate方法中,EditTextsTextView僅聲明一次。另外,getText().clear()是從EditText清除文本的「官方」方式(並不是它真的使視覺差異)。

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
Button clear = (Button)findViewById(R.id.btn_clear); 
EditText potsize = (EditText) findViewById(R.id.et_pot_size); 
EditText tocall = (EditText) findViewById(R.id.et_to_call); 
EditText bepercent = (EditText) findViewById(R.id.et_be_per); 
TextView potoddscalc = (TextView)findViewById(R.id.tv_pot_odds_calc); 
clear.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) 
    { 
     potsize.getText().clear(); 
     tocall.getText().clear(); 
     bepercent.getText().clear(); 
     potoddscalc.setText("5"); 
    } 
}); 

}

+1

+1 .getText()。clear();'但我認爲這對他沒有任何影響。 –

+0

是的,我想不出還有什麼可能,但我覺得這值得一試。 :) – ArmaAK

+0

謝謝並感謝下面的答案。 – user1733468

0
// try this way 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:padding="5dp" 
    android:orientation="vertical" 
    tools:context=".MainActivity" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp"> 
     <TextView 
      android:id="@+id/tv_pot_size" 
      android:layout_width="0dp" 
      android:layout_weight="0.20" 
      android:gravity="right" 
      android:layout_height="wrap_content" 
      android:text="pot_size" 
      android:textStyle="bold" /> 

     <EditText 
      android:id="@+id/et_pot_size" 
      android:layout_width="0dp" 
      android:layout_weight="0.80" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:ems="10" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp"> 
     <TextView 
      android:id="@+id/tv_to_call" 
      android:layout_width="0dp" 
      android:layout_weight="0.20" 
      android:gravity="right" 
      android:layout_height="wrap_content" 
      android:text="to_call" 
      android:textStyle="bold" /> 

     <EditText 
      android:id="@+id/et_to_call" 
      android:layout_width="0dp" 
      android:layout_weight="0.80" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:ems="10" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp"> 
     <TextView 
      android:id="@+id/tv_be_per" 
      android:layout_width="0dp" 
      android:layout_weight="0.20" 
      android:gravity="right" 
      android:layout_height="wrap_content" 
      android:text="BE_Per" 
      android:textStyle="bold" /> 


     <EditText 
      android:id="@+id/et_be_per" 
      android:layout_width="0dp" 
      android:layout_weight="0.80" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:ems="10" /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:layout_marginTop="10dp"> 


     <TextView 
      android:id="@+id/tv_pot_odds" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="pot_odds" 
      android:textStyle="bold" /> 


     <TextView 
      android:id="@+id/tv_pot_odds_calc" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:ems="8" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:gravity="center"> 

     <Button 
      android:id="@+id/btn_calc" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="calc_button" /> 

     <Button 
      android:id="@+id/btn_clear" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:text="clear_button" /> 

    </LinearLayout> 

</LinearLayout> 


public class MyActivity extends Activity { 

    private EditText potsize; 
    private EditText tocall; 
    private EditText bepercent; 
    private Button clear; 
    private Button calc; 
    private TextView potoddscalc; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     clear = (Button)findViewById(R.id.btn_clear); 
     calc = (Button)findViewById(R.id.btn_calc); 
     potsize = (EditText) findViewById(R.id.et_pot_size); 
     tocall = (EditText) findViewById(R.id.et_to_call); 
     bepercent = (EditText) findViewById(R.id.et_be_per); 
     potoddscalc = (TextView)findViewById(R.id.tv_pot_odds_calc); 
     clear.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) 
      { 
       clearOrReset(); 
      } 
     }); 
    } 

    private void clearOrReset(){ 
     potsize.setText(""); 
     tocall.setText(""); 
     bepercent.setText(""); 
     potoddscalc.setText("5"); 
    } 
} 
+0

謝謝你爲我改寫它。 :) – user1733468

0

聲明在OnCreate方法EDITTEXT的三個對象,然後嘗試

enter code here @Override 
       protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        Button clear = (Button)findViewById(R.id.btn_clear); 
        EditText potsize = (EditText) findViewById(R.id.et_pot_size); 
        EditText tocall = (EditText) findViewById(R.id.et_to_call); 
        EditText bepercent = (EditText) findViewById(R.id.et_be_per); 
       TextView potoddscalc = (TextView)findViewById(R.id.tv_pot_odds_calc); 
         public void onClick(View v) 
    { 
     swiech(v.getid()) 
    { 
    case R.id.btn_clear: 
     potsize.setText(""); 
     tocall.setText(""); 
     bepercent.setText(""); 

     potoddscalc.setText("5"); 
    } 
}); 

}