2012-07-06 102 views
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; 
} 

}

+1

發佈錯誤日誌。 – 2012-07-06 18:16:12

回答

3

你必須設置內容視圖。

super.onCreate(savedInstanceState);地址:

​​

編輯:

這裏發生了什麼。 您將此代碼粘貼到您的活動中。

Eclipse給了你一個錯誤:「方法findPreference(String)對於類型volman」「是未定義的。這是正常的,因爲你必須擴展PreferenceActivity而不是Activity

您做了快速修復:創建方法findPreference(String)

這創建了一個返回null的方法,但是讓你的代碼編譯。

這就是爲什麼你會得到一個NullPointerException

+0

我有一個用戶界面,甚至當我用UI運行它時,它仍然崩潰。 – 2012-07-06 18:24:41

+0

你是什麼意思你有一個用戶界面?活動附加到UI的方式是通過setContentView()如上所述。 – CSAntol 2012-07-06 18:27:03

+0

我的意思是我之前在代碼中使用過它,但即使使用Layout調用它仍然崩潰。 – 2012-07-06 18:27:48