Можно сделать что-то подобное
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);
}
, но существует требование, что метод должен бытьpublic, void и самое важное - взять View в качестве аргумента.
Теперь я хотел бы сделать то же самое, но с кнопкой «Флажок».Флажок имеет атрибут 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-способом»?