It ' Возможно, сделать что-то вроде этого
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/addContactButton"
android:text="@string/addContactButtonLabel"
android:onClick="launchContactAdder"/><!-- here -->
</LinearLayout>
Java:
public void launchContactAdder(View v)
{
Intent i = new Intent(this, ContactAdder.class);
startActivity(i);
}
, но есть требование, чтобы метод был общедоступным, недействительным и, что наиболее важно, принимал View в качестве аргумента.
Теперь я Я бы хотел сделать то же самое, но с кнопкой Checkbox. У флажка есть атрибут android: onclick, но в руководстве по Android (http://developer.android.com/resources/samples/ContactManager/index.html) я вижу этот код
showInvisibleControl.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
Log.d(TAG, "mShowInvisibleControl changed: " + isChecked);
showInvisible = isChecked;
populateContactList();
}
});
Итак, есть onCheckedChanged (CompoundButton buttonView, логическое значение isChecked) метод. Есть ли способ сделать это с помощью XML? Атрибут android: onCheckedChange отсутствует, только атрибут android: onClick, но, как я писал выше, имя этого атрибута должно иметь соответствующее имя метода, которое принимает View в качестве аргумента, но из приведенного выше кода я понимаю, что у меня должен быть метод с CompoundButton и логические аргументы.
Любой способ сделать это «XML-способом»?