我有这段代码:
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
button1.setBackgroundResource(R.drawable.detailpressed);
Chapter_sync.add(chapid);
}
我要做的是切换以下clicklistener中调用的所有方法。
例如,第一次单击此按钮时,将调用setBackgroundResource(R.drawable.detailpressed),并在下一次单击时使用不同的drawable调用相同的metod。
像切换按钮之类的东西。 有人擅长这个PLZ的帮助吗?
答案 0 :(得分:2)
你可以采取变量
int i=0;
每次点击都会增加。
if(i%2==0)
set one image
else
set another image
答案 1 :(得分:1)
如何创建drawable ID的数组并保存索引:
private final int[] myDrawables = {R.drawable.detailpressed, R.drawable.detailpressed1, ...};
//...
button1.setOnClickListener(new OnClickListener() {
int index = 0;
@Override
public void onClick(View v) {
button1.setBackgroundResource(myDrawables[index++ % myDrawables.length]);
Chapter_sync.add(chapid);
}
}
答案 2 :(得分:1)
将变量声明为
boolean isOddClicked = true;
并将您的点击监听器更新为
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Do stuff here for chnaging background of button
if(isOddClicked) {
button1.setBackgroundResource(R.drawable.detailpressed);
isOddClicked = false;
} else {
button1.setBackgroundResource(R.drawable.detailpressed_SECOND_IMAGE);
isOddClicked = true;
}
//Do your task
Chapter_sync.add(chapid);
}
注意:如果您的要求在两张图片之间移动,那么您可以使用toggle button
并自定义它。它将与您的要求相同。
答案 3 :(得分:0)
<code>
<Button
android:id="@+id/btnListView"
android:layout_width="35dp"
android:layout_height="35dp"
android:background="@drawable/list_view"
android:onClick="switchToListView"
android:visibility="visible"
/>
<Button
android:id="@+id/btnGridView"
android:layout_width="35dp"
android:layout_height="35dp"
android:background="@drawable/grid_view"
android:onClick="switchToGridView"
android:visibility="gone"
/>
<code>
<小时/>
<code>
public void switchToListView(View view) {
(Button) findViewById(R.id.btnListView).setVisibility(View.GONE);
(Button) findViewById(R.id.btnGridView).setVisibility(View.VISIBLE);
}
public void switchToGridView(View view) {
(Button) findViewById(R.id.btnGridView).setVisibility(View.GONE);
(Button) findViewById(R.id.btnListView).setVisibility(View.VISIBLE);
}
</code>