2014-01-25 49 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"); 
    } 
}); 

}