2012-07-06 2 views
0

J'ai joué avec ce code d'activité de préférence pendant la majeure partie de la journée et avec de l'aide dans mon dernier post je l'ai eu pour qu'il compile/installe sur AVD mais il ne fonctionne pas et n'apparaît pas dans le menu app . Voici le code:Android: l'activité de préférence ne fonctionne pas?

import android.content.Context; 
import android.media.AudioManager; 
import android.os.Bundle; 
import android.preference.DialogPreference; 
import android.preference.Preference; 
import android.preference.Preference.OnPreferenceChangeListener; 
import android.preference.PreferenceActivity; 
import android.widget.SeekBar; 
import android.widget.SeekBar.OnSeekBarChangeListener; 
import android.widget.Toast; 
public class volman extends PreferenceActivity { 

@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 Vol Tracking", 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; 
} 
} 

Voici le fichier manifeste:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="path.to.app" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="5" 
    android:targetSdkVersion="15" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".volman" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.PREFERENCE" /> 
     </intent-filter> 
    </activity> 
</application> 

Répondre

0

Vous commencez avec

DialogPreference dp = (DialogPreference) findPreference("mediavolume"); 

mais

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

Vous obtenez donc une exception NullPointerException dans dp.setOnPreferenceChangeListener(...), non?

+0

Oui, je le crois. –

+0

@ a.kollar Alors, est-ce que cela répond à votre question? –

+0

Non, il n'a pas répondu à la question, je pourrais re-poster et avoir une perspective différente. –

Questions connexes