我想用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" />
答案 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));
}
});
}
}