#android #android-imagebutton #android-togglebutton
#Android #android-imagebutton #android-кнопка переключения
Вопрос:
У меня есть imagebutton, и я хочу написать метод setOnClickListener с помощью щелчка переключателем (например, ToggleButton). Я знаю, как работает кнопка переключения, но мне не нужно ее использовать. в imagebutton можно записать метод toggleclick. Я написал некоторый код, но не работает, например, кнопка переключения
strada_chart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(arg0.isClickable()==true)
{
Toast.makeText(getApplicationContext(), "1", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(), "2", Toast.LENGTH_SHORT).show();
}
}
});
Комментарии:
1. переключить? Нравится флажок?
Ответ №1:
Попробуйте это..
likeBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(fun) {
likeBtn.setImageResource(R.drawable.unlike);
fun=false;
} else {
fun=true;
likeBtn.setImageResource(R.drawable.like);
Toast.makeText(
getApplicationContext(),
"Changed",
Toast.LENGTH_LONG
).show();
}
}
});
Комментарии:
1. а в вашем коде fun — это логический тип, а first time fun =false ?
Ответ №2:
public void onToggleClicked(View view) {
// Is the toggle on?
switch (view.getId()) {
case R.id.xyz:
boolean on = ((ToggleButton) view).isChecked();
if (on) {
Toast.makeText(mContext, "A", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(mContext, "B", Toast.LENGTH_SHORT).show();
}
}
}
Используйте свойство кнопки переключения
В XML:
<ToggleButton
android:id="@ id/xyz"
style="@style/toggleButton"
android:layout_width="190dp"
android:layout_height="50dp"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_margin="8dp"
android:background="@drawable/ic_toggle_sv"
android:onClick="onToggleClicked" />
В ic_toggle_sv
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@ android:id/background"
android:drawable="@android:color/transparent"/>
<item
android:id="@ android:id/toggle"
android:drawable="@drawable/ic_toggle1"/>
</layer-list>
В ic_toggle1 передайте оба изображения кнопки переключения
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_toggle_stills" android:state_checked="false"/>
<item android:drawable="@drawable/ic_toggle_videos" android:state_checked="true"/>
</selector>
Ответ №3:
Попробуйте это….
private static boolean isClicked = true;
strada_chart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(isClicked)
{
Toast.makeText(getApplicationContext(), "1", Toast.LENGTH_SHORT).show();
isClicked = false;
}
else
{
Toast.makeText(getApplicationContext(), "2", Toast.LENGTH_SHORT).show();
}
}
});