Java 我可以在初始化set content view后更改Android按钮的样式吗?
我想根据字符串值在android按钮视图中显示不同样式的按钮,我可以通过编程实现吗 即使我设置了setTextAppearance,但我是否可以以编程方式使用SetStyle条件,因为它不反映在视图中Java 我可以在初始化set content view后更改Android按钮的样式吗?,java,android,Java,Android,我想根据字符串值在android按钮视图中显示不同样式的按钮,我可以通过编程实现吗 即使我设置了setTextAppearance,但我是否可以以编程方式使用SetStyle条件,因为它不反映在视图中 private Button dynakey[]= new Button[9];//8 buttons //Parse the values of buttons try { String sButtonString=""
private Button dynakey[]= new Button[9];//8 buttons
//Parse the values of buttons
try {
String sButtonString="";
JSONArray jArrayButton =
ResponseUIObject.getJSONArray("BUTTON");
for(int k=0;k<8;k++) {
int ID=k+1;
String dynakeyID = "dynakey"+(ID);
int resID = getResources().getIdentifier(dynakeyID, "id", getPackageName());
dynakey[ID] =(Button) findViewById(resID);
sButtonString= jArrayButton.getString(k-0);
//Set Enable or Disable logic here
if ((ID% 2) == 0) {
// number is even its a right side button //Change style of button depending upon the value
if(sButtonString.trim().length() == 0) {
//If string is not null or not empty then Enable the button else not
dynakey[ID].setTextAppearance(this, R.style.RightDisableDynakeyButton);
}else{
dynakey[ID].setTextAppearance(this, R.style.RightEnableDynakeyButton);
}
}
else {
// number is odd its a left side button //Change style of button depending upon the value
if(sButtonString.trim().length() ==0) {
//If string is not null or empty then Enable the button else not
dynakey[ID].setTextAppearance(this, R.style.LeftDisableDynakeyButton);
}else{
dynakey[ID].setTextAppearance(this, R.style.LeftEnableDynakeyButton);
}
}
}
}
您使用的这种形式的setTextAppearance已被弃用。将代码更改为类似以下内容:
自从API 23 setTextAppearancestyleId引入以来。
试试看。
编辑您的代码:
1这一行:
专用按钮动态键[]=新按钮[9];
创建一个由9个按钮组成的数组,而不是注释中的8个按钮。
2在try块中应用更改我看不到catch块,因此不会传播任何错误。可能是按钮的ID不正确吗?
3发布您的样式和xml我正在为按钮使用样式,我想更改按钮的样式
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_button_gray" android:state_enabled="false" />
<item android:drawable="@drawable/shape_button_colored" android:state_enabled="true" />
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_button_gray" android:state_enabled="false" />
<item android:drawable="@drawable/shape_button_colored" android:state_enabled="true" />
</selector>
<Button
android:id = "@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/selector_button"
android:textColor="@android:color/white" />
if(sButtonString.trim().length() == 0) {
dynakey[ID].setEnabled(true)
} else {
dynakey[ID].setEnabled(false)
}