1

-このブロックのメイン コードを編集しました-
私が書いているこのコードは、起動時に問題があります。アプリの GUI が起動し、「申し訳ありませんが、"Appname" は残念ながら動作を停止しました」と表示されます。

[ここに logcat エラーがあります][1]
私はそれがここにある起動コードと関係があると推測しています:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dhd);

    DialogPreference dp = (DialogPreference) findPreference("mediavolume");
    dp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        public boolean onPreferenceChange(Preference preference,
                Object newValue) {
            SeekBar volumeBar = (SeekBar) findViewById(R.id.seekBar);
            final AudioManager manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

            volumeBar.setMax(manager
                    .getStreamMaxVolume(AudioManager.STREAM_SYSTEM));
            volumeBar.setProgress(manager
                    .getStreamVolume(AudioManager.STREAM_SYSTEM));

            volumeBar
                    .setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                        @Override
                        public void onStartTrackingTouch(SeekBar seekBar) {
                            Toast.makeText(volman.this, "Starting", Toast.LENGTH_LONG).show();

                        }

                        @Override
                        public void onStopTrackingTouch(SeekBar seekBar) {
                            Toast.makeText(volman.this, "Now Stopping", Toast.LENGTH_LONG).show();

                        }
                        public void onProgressChanged(SeekBar seekBar,
                                int progress, boolean fromUser) {
                            manager.setStreamVolume(
                                    AudioManager.STREAM_SYSTEM, progress,
                                    AudioManager.FLAG_SHOW_UI);
                            Toast.makeText(volman.this, "Now going Silent", Toast.LENGTH_LONG).show();

                        }
                    });

            return false;
        }
    });
}

private DialogPreference findPreference(String string) {
    return null;
}

}

4

1 に答える 1

3

コンテンツ ビューを設定する必要があります。

super.onCreate(savedInstanceState);追加後:

setContentView(R.layout.your_layout);

編集:

これが何が起こったのかです。このコードをアクティビティに貼り付けました。

Eclipse から次のようなエラーが表示されました。ではなく拡張する必要がPreferenceActivityあるため、これは正常ですActivity

簡単な修正を行いました:メソッド findPreference(String) を作成します。

これにより、null を返すメソッドが作成されましたが、コードはコンパイルされました。

それがあなたが得ている理由ですNullPointerException

于 2012-07-06T18:18:55.937 に答える