Кнопка переключения изображения Android

#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();
        }

    }
});