我班上有一系列按钮,如下所示:
<html>
<head>
<style>
.holder{
background-color:yellow;
margin-top:10px;
width: 300px;
}
.holder span{
background-color: Green;
height:20px;
color:white;
}
</style>
<script>
var contacts =[];
function getInfo() {
var firstName = prompt("Enter first name");
var lastName = prompt("Enter last name");
var emailId = prompt("Enter Email ID");
var phoneNo = prompt("Enter Phone number");
var person ={
fname : firstName,
lname : lastName,
email : emailId,
phone : phoneNo
};
contacts.push(person);
var currPerson = contacts[contacts.length-1]; //take the last pushed object from the array
var lastNameFirstChar = currPerson.lname.charAt(0).toUpperCase();
if(!document.getElementById(lastNameFirstChar + "_holder")){
document.getElementById("mydiv").innerHTML += "<div id='"+lastNameFirstChar+"_holder' class='holder'><span>"+lastNameFirstChar+"</span></br></div>";
}
//document.getElementById(lastNameFirstChar + "_holder").innerHTML += currPerson.fname+" "+currPerson.lname + "<br/>";
document.getElementById(lastNameFirstChar + "_holder").innerHTML += "<span onclick='showMe(" + currPerson.id + ")'>" + currPerson.fname + " " + currPerson.lname + "</span><br/>";
}
function showMe(id) {
alert(id);
var person = contacts[id]; /* currently corresponds to array index, could be a property lookup with underscore or whatever */
var contactInfo = person.fname+" "+person.lname+"</br> "+person.email+"</br>"+person.phone;
target.innerHTML = "<div>" + contactInfo + "</div></br>";
}
</script>
</head>
<body>
<button onclick="getInfo()">Get Person Info</button>
<p>----------------------------</p>
<div id="mydiv">
</div>
</body>
</html>
并在我的xml中添加了图像背景,如下所示:
private static final int[] idArray = {R.id.bt0,R.id.bt1,R.id.bt2,R.id.bt3,R.id.bt4,R.id.bt5,R.id.bt6,R.id.bt7,R.id.bt8,R.id.bt9,R.id.bt10,R.id.bt11,R.id.bt12,R.id.bt13,R.id.bt14,R.id.bt15,R.id.bt16,R.id.bt17,R.id.bt18,R.id.bt19,R.id.bt20,R.id.bt21,R.id.bt22,R.id.bt23,R.id.bt24,R.id.bt25,R.id.bt26,R.id.bt27,R.id.bt28,R.id.bt29};
private Button[] bt = new Button[idArray.length];
现在,当我按下按钮时,背景图像会被更改(btnew1.gif),并在释放时恢复正常。 我希望在单击一个按钮时更改颜色(它将是一个不同的图像,btnew2.gif),再次单击时应返回原始颜色(btnew.gif)。
类似于<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btnew2" android:state_selected="true"></item>
<item android:drawable="@drawable/btnew1" android:state_pressed="true"></item>
<item android:drawable="@drawable/btnew"></item>
</selector>
的东西,如果有类似的东西。
PS:我在这里检查了其他答案,但大多数只是java类中的换色器,当我点击时,我正在寻找要改变的背景图像(到btnew2.gif) 再次点击时返回原始图片(btnew.gif)。
请提出合适的解决方案。
答案 0 :(得分:0)
您可以通过制作自己的自定义按钮来完成此操作。
Class MyButton extends Button implememts OnClickListener{
Public MyButton(....){
......
this.setOnClickListener(this);
}
@override
Public void onClick(....){
....toogle bg for this button.....
}
}
这不是确切的代码....但是如何做到这一点的抽象概念。
答案 1 :(得分:0)
正如Niels Masdorp所说,你可以用{{var order.getGrandTotal()}}
来做。
这是有效的,因为有一个名为ToggleButton
的状态标识符,类似于state_checkable
,它与state_clickable
接口一起使用。 Checkable
实现了这个接口。您还可以创建自己的实现此界面的小部件,例如扩展ToggleButton
(摘要)。
示例强>
使用xml中的按钮:
CompoundButton
在xml中定义背景:
<ToggleButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/toggle_bg"
android:textOn="On"
android:textOff="Off"/>
另见: