2

独自のタイムピッカー ダイアログをカスタマイズしたいので、提供されているタイムピッカー ダイアログは使用しません。ただし、優先的にダイアログを呼び出すと機能しないことがわかりました。しかし、通常のxmlレイアウトに入れればうまくいきます。このコードには Eclipse によってチェックされるエラーはありませんが、電話で実行すると、下の太字の行から nullpointerexception が出てきます。

public class Prefs extends PreferenceActivity{

    Preference time;

    void openCustomDialog() {
        AlertDialog.Builder customDialog = new AlertDialog.Builder(Prefs.this);
        customDialog.setTitle("Set Delay Time");
        LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = layoutInflater.inflate(R.layout.timepicker, null); 
        TimePicker minute = (TimePicker) findViewById(R.id.mPicker);
        **minute.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener()** {
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
            }
        });
        minute.setCurrentMinute(usb.minute);

        TimePicker second = (TimePicker) findViewById(R.id.sPicker);
        second.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            public void onTimeChanged(TimePicker view, int hourOfDay, int second) {
            }
        });
        second.setCurrentMinute(usb.second);
        customDialog.setPositiveButton("OK",new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface arg0, int arg1) {
                    }
                });
        customDialog.setView(view);
        customDialog.show();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.prefs);

        time = (Preference)findPreference("time");

        time.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
            @Override
            public boolean onPreferenceClick(Preference arg0) { 
                openCustomDialog();  
                return true;
            }
        });
}
4

0 に答える 0