Android Studio中为两个TextView添加重置按钮的实现求助
解决Android Studio中重置两个TextView分数的按钮功能问题
我来帮你搞定这个重置分数的问题!看你的布局文件,已经添加了id为reset的按钮,只需要在对应的MainActivity里实现点击逻辑就行,之前的方法没生效大概率是细节没处理对,下面是两种简单可行的实现方式:
方法一:通过代码设置点击监听
在MainActivity中声明控件
在Activity类顶部定义需要用到的TextView和Button:private TextView scoreTextView; private TextView score2TextView; private Button resetButton;初始化控件并设置监听
在onCreate方法里绑定布局控件,给重置按钮添加点击事件:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 绑定布局中的控件 scoreTextView = findViewById(R.id.score); score2TextView = findViewById(R.id.score2); resetButton = findViewById(R.id.reset); // 给重置按钮设置点击事件 resetButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 重置两个分数为初始值(使用字符串资源更规范) scoreTextView.setText(getString(R.string._0)); score2TextView.setText(getString(R.string._0)); } }); }
方法二:使用布局中的android:onClick属性
修改布局中的reset按钮
给reset按钮添加android:onClick属性,指定点击时调用的方法名:<Button android:id="@+id/reset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/reset" android:layout_gravity="center" android:layout_marginTop="50dp" android:textColor="#ff1100" android:onClick="resetScore"/> <!-- 添加这一行 -->在MainActivity中实现重置方法
添加一个名为resetScore的公共方法,参数为View:public void resetScore(View view) { // 先绑定控件(如果之前没绑定的话) TextView scoreTextView = findViewById(R.id.score); TextView score2TextView = findViewById(R.id.score2); // 重置分数为初始值 scoreTextView.setText(getString(R.string._0)); score2TextView.setText(getString(R.string._0)); }
你之前方法失效的可能原因
- 使用
setText("")会清空文本,而不是重置为初始的0,应该设置为你的字符串资源R.string._0或者直接setText("0"); - 没有正确调用
findViewById绑定控件,导致操作的是null对象; - 没必要用
Intent,重置分数只是修改当前页面的控件内容,不需要跳转页面; - 如果用
if判断,可能逻辑写错了(比如判断条件不对)。
记得确保你的strings.xml里存在_0这个字符串资源,内容是"0"哦!
内容的提问来源于stack exchange,提问作者Masa Bnayan
相关产品推荐
相关产品推荐

