如何在按钮上创建计数器?

时间:2014-07-17 06:26:29

标签: android button textview

我想用text =" SomeText"创建按钮。在这个按钮的中心和" 0"在按钮的右侧部分。在哪里" 0"是计数器,当我点击这个按钮时,Counter ++递增,变成" 1" ... 我想知道如何将textviev与"按钮的右侧部分" ?

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="85dp"
    android:background="@drawable/button_menu"
    android:onClick="but1_Count"
    android:text="SomeText"
    android:textColor="@drawable/text_color"
    android:textSize="100dp" />

3 个答案:

答案 0 :(得分:2)

private static int counter = 0;

button1.setOnClickListener(new OnClickListener(){
    @Override
    onClick(View v){
       counter += 1
       button.setText("Some text" + counter);
    }
 });

答案 1 :(得分:0)

有几种选择。

创建一个静态变量:

private static int buttonClickCount = 0;

public void but1_Count(View v){
    buttonClickCount++;
    v.settext("Clicked " + buttonClickCount);
}

通过扩展基本按钮类创建自定义按钮并实现onClickListener:

public class MyButton extends Button implements View.OnClickListener {
    private int counter = 0;
    public MyButton(...){
        this.setOnClickListener(this);
    }
    public void onClick(View v) {
        counter++;
        v.setText("Clicked"+counter);
    }
}

从单击的按钮中提取值,将其解析为int,并递增:

public void but1_count(View v){
    int curr = Integer.parseInt(v.getText().toString());
    v.setText(""+curr);
}

答案 2 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

<强> main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">
    <Button
        android:id="@+id/btnCounter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some Text"/>
</LinearLayout>

<强>的strings.xml

<string name="button_text">Some Text  %1d</string>

<强> MyActivity.java

public class MyActivity extends Activity{

    private Button btnCounter;
    private int count;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        btnCounter = (Button) findViewById(R.id.btnCounter);

        btnCounter.setText(String.format(getString(R.string.button_text),count));

        btnCounter.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                count++;
                btnCounter.setText(String.format(getString(R.string.button_text),count));
            }
        });
    }

}