Ниже приведено простое решение для добавления нажимаемой кнопки на экран настроек. Это легко сделать, потому что в настройках уже зарезервировано место в android: widgetLayout и кнопка может передавать клики с помощью android: onClick.
Сначала создайте файл button.xml с содержанием
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text="BUTTON"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button"
android:onClick="onButtonClick"/>
</LinearLayout>
Теперь в ваших предпочтениях.xml добавьте предпочтение
<Preference
android:key="button"
android:title="Title"
android:summary="Summary"
android:widgetLayout="@layout/button" />
Ваша PreferenceActivity теперь должна содержать только участника onButtonClick
public class MainActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.main_preferences);
}
public void onButtonClick(View v) {
Log.d("Button", "Yeah, button was clicked");
}
}