1

設定に関するAndroidAPIガイドに従おうとしています。具体的には、テキストのこの部分に従って、この番号ピッカーダイアログを作成しようとしています。しかし、私はそれを機能させることができません。カスタムダイアログを起動するはずの設定を押しても、何も起こりません。どこかで電話をかけないといけないと思いますが、どうしたらいいのかわかりません。

これが私のMainActivity.javaです。

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_activity_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menu_settings_fragment:
        // Display the fragment as the main content
        Intent i = new Intent();
        i.setClass(this, SettingsActivity.class);
        startActivityForResult(i, 0);
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
} 
}

そして、SettingsActivity.javaを適切に起動します。SettingsActivity.java:

public class SettingsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Display the fragment as the main content.
    getFragmentManager().beginTransaction()
            .replace(android.R.id.content, new SettingsFragment()).commit();
}
}

SettingsFragment.javaに移動します。

public class SettingsFragment extends PreferenceFragment {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Load the preferences from an XML resource
    addPreferencesFromResource(R.xml.preferences);
}
}

これはpreferences.xmlを起動します:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <PreferenceCategory
        android:key="pref_key_category_settings"
        android:title="@string/pref_category1_title" >
        <CheckBoxPreference
            android:defaultValue="true"
            android:key="pref_checkbox"
            android:summary="@string/pref_checkbox_summ"
            android:title="@string/pref_sync" />
        <CheckBoxPreference
            android:defaultValue="true"
            android:key="pref_checkbox_choose_int"
            android:summary="@string/pref_checkbox_choose_string_summ"
            android:title="@string/pref_choose_string" />

        <Preference
            android:dependency="pref_checkbox_choose_int"
            android:key="pref_key_num_scroller"
            android:summary="@string/pref_num_scroller_summ"
            android:title="@string/pref_num_scroller"/>
    </PreferenceCategory>

</PreferenceScreen>

私が言ったように:pref_key_num_scrollerをクリックしても何も起こりません。

NumberPickerPreference.javaを呼び出す方法がわかりません。

public class NumberPickerPreference extends DialogPreference {

public NumberPickerPreference(Context context, AttributeSet attrs) {
    super(context, attrs);

    setDialogLayoutResource(R.layout.numberpicker_dialog);
    setPositiveButtonText(android.R.string.ok);
    setNegativeButtonText(android.R.string.cancel);
}
}
4

1 に答える 1

2

完全修飾名を使用して、XMLでPreferenceをNumberPickerPreferenceに変更します。

<com.something.settings.NumberPickerPreference 
    android:dependency="pref_checkbox_choose_int"
    android:key="pref_key_num_scroller"
    android:summary="@string/pref_num_scroller_summ"
    android:title="@string/pref_num_scroller"/>
于 2012-08-08T12:25:32.630 に答える