- 重复此代码中的主要代码 -
我写的这段代码在启动时遇到了问题。它启动应用程序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;
}
}
答案 0 :(得分:3)
您必须设置内容视图。
super.onCreate(savedInstanceState);
之后添加:
setContentView(R.layout.your_layout);
修改强>
发生了什么事。 您将此代码粘贴到您的活动中。
Eclipse给出了一个错误:“方法findPreference(String)未定义类型volman”。这是正常的,因为您必须扩展PreferenceActivity
而不是Activity
。
你做了快速修复:创建方法findPreference(String)。
这创建了一个返回null的方法,但是编译了代码。
这就是为什么你得到NullPointerException
。