【问题标题】:How to change text on button when the button has a particular current text (Android Studio/Java&XML)当按钮具有特定的当前文本时如何更改按钮上的文本(Android Studio/Java XML)
【发布时间】:2017-04-28 02:24:21
【问题描述】:
所以我正在尝试做一件非常简单的事情,但由于某种原因我不知道该怎么做。我尝试过在线搜索,但不断寻找不能完全回答我问题的资源。如何更改按钮上的文本,不是如果按下该按钮,而是如果按下任何按钮并且按下按钮上的文本等于某个值?我所有的字符串都保存在 strings.xml 文件中,我只是在我的 fragment_main.xml 中引用它们(例如,使用
android:text="@string/firstoption"
,但如果这样更容易,我可以对字符串进行硬编码。我也是在用fragment,那我应该把onClick方法放在MainActivityFragment.java还是MainActivity.java中?
【问题讨论】:
标签:
java
android
xml
android-studio
onclick
【解决方案1】:
尝试为您的按钮创建 2 个 div。在按钮单击事件上显示和隐藏 div。使用#divid 获取div。或者,按钮文本应该是一个动态值,它应该在您点击页面上的任何按钮时发生变化。
【解决方案2】:
使用下面的代码,您将创建一个通用的 OnClickListener“buttonClickListener”。然后,您可以将相同的点击侦听器添加到您也想侦听的所有按钮。在本例中,按钮 1、2 和 3。当您单击其中任何一个按钮时,将调用 buttonClickListener。 View v 参数将是触发此事件的视图的引用,在我们的例子中,无论按下哪个按钮。然后,您可以将 v 强制转换为 Button 并检查所单击按钮的文本。如果是某个值,则可以设置所需按钮的文本,在本例中为 buttonToSetText 按钮。
final OnClickListener buttonClickListener = new OnClickListener() {
public void onClick(final View v) {
Button b = (Button)v;
if(b.getText().toString().equals("something")){
buttonToSetText.setText("value to set");
}
}
};
Button buttonToSetText = (Button) findViewById(R.id.buttonToSetText);
Button button1 = (Button) findViewById(R.id.button1);
Button button2 = (Button) findViewById(R.id.button2);
Button button3 = (Button) findViewById(R.id.button3);
button1.setOnClickListener(buttonClickListener);
button2.setOnClickListener(buttonClickListener);
button3.setOnClickListener(buttonClickListener);