Переключатель для включения/отключения вибрации и звука с помощью кнопки

С Android-студией. У меня есть две кнопки, которые при нажатии издают вибрацию и звук. Я поставил в раскладку два переключателя вкл/выкл, чтобы включить/отключить вибрацию и звук двух кнопок. Я пытался установить код, но когда я запускаю приложение, оно вылетает и выдает ошибку. Кто-нибудь может мне помочь?

Это код java:

public class SettingsActivity extends Activity {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.opzioni);

    final Switch onOffSwitchvibr = (Switch)  findViewById(R.id.switch2);
    onOffSwitchvibr.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton View, boolean isChecked) {
            if (isChecked) {
                onOffSwitchvibr.isEnabled();

                // The toggle is enabled
            } else {
                onOffSwitchvibr.getTextOff();
                return;
                // The toggle is disabled
            }
        }


    });

}





}

А это код xml:

<RelativeLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="32dp"
    android:layout_marginLeft="40dp"
    android:text="SETTINGS"
    android:textStyle="bold"
    android:textColor="#999999"
    android:textSize="15sp"/>
<View
    android:layout_width="fill_parent"
    android:layout_height="3dp"
    android:background="#B2B2B2"
    android:layout_marginTop="65dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"/>
<Switch
    android:id="@+id/switch1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/switch1"
    android:layout_marginTop="80dp"
    android:layout_marginRight="32dp"
    android:layout_marginLeft="32dp"

    android:onClick="onSwitchClicked"
    android:fontFamily="sans-serif"
    android:switchTextAppearance="@android:style/TextAppearance"/>
<View
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:layout_marginLeft="32dp"
    android:layout_marginRight="32dp"
    android:layout_marginTop="115dp"
    android:background="#999999"/>
<Switch
    android:id="@+id/switch2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/switch2"
    android:layout_marginTop="130dp"
    android:layout_marginRight="32dp"
    android:layout_marginLeft="32dp"
    android:fontFamily="sans-serif"
    android:textOn="ON"
    android:textOff="OFF"

    android:onClick="onSwitchClicked"
    android:switchTextAppearance="@android:style/TextAppearance"/>

person Pier    schedule 06.11.2013    source источник


Ответы (1)


Трудно сказать, не сообщая нам, какую ошибку вы получаете. Но несколько вещей...

Убедитесь, что ваш файл xml называется так же, как вы устанавливаете представление содержимого (opzioni.xml)

setContentView(R.layout.opzioni);

Кроме того, в вашем xml для обоих ваших коммутаторов вы настроили интерфейсный вызов метода:

android:onClick="onSwitchClicked"

который сообщает объекту представления кнопки вызывать следующий метод в вашей деятельности при касании:

public void onSwitchClicked(View v)

Но поскольку вы его не определили, вы получите сообщение об ошибке.

Поэтому либо определите этот метод в своей деятельности, либо удалите эту строку из своего xml.

person frogmanx    schedule 06.11.2013