Java Android Seekbarp参考和显示值

Java Android Seekbarp参考和显示值,java,android,xml,android-preferences,Java,Android,Xml,Android Preferences,我试图创建一个cusotm SeekBarPreference,并向用户显示它的值。每次我点击菜单中的设置,我的应用程序就会崩溃,我不知道为什么。这是我到目前为止的代码 MainActivity.java //Within the MainActivity.java @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater()

我试图创建一个cusotm SeekBarPreference,并向用户显示它的值。每次我点击菜单中的设置,我的应用程序就会崩溃,我不知道为什么。这是我到目前为止的代码

MainActivity.java

//Within the MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    super.onCreateOptionsMenu(menu);
    getMenuInflater().inflate(R.menu.settings_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch(item.getItemId())
    {
        case R.id.preferences:
            Intent i2 = new Intent("com.example.testApp.PREFERENCES");
            startActivity(i2);
            break;
        case R.id.exit:
            finish();
            break;
    }

    return false;
}
res/xml/preferences.xml

使用“com.example.testApp.SeekBarPreference”调用新类是否正确

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >   
<com.example.testApp.SeekBarPreference
    android:title="Sensativity"
    android:key="seekbar"
    android:max="100"
    android:defaultValue="50">
</SeekBarPreference>
</PreferenceScreen>
SeekBarPreference.java

自从应用程序崩溃后,我从未获得过“In SBP!”日志。我留下了存根,因为无法访问日志,所以没有在这里填写其余的代码

public class SeekBarPreference extends Preference implements OnSeekBarChangeListener
{

    public SeekBarPreference(Context context)
    {
        super(context);
        Log.i("SBP", "In SBP!");
    }

    @Override
    public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {   
    }

    @Override
    public void onStartTrackingTouch(SeekBar arg0) {    
    }

    @Override
    public void onStopTrackingTouch(SeekBar arg0) {     
    }
}

谢谢。

我相信您很久以前就知道了,但是您的XML首选项文件中的开始标记和结束标记不匹配:


应该是


如果您在问题中发布日志,那么这个有用的问题将非常有用。
public class SeekBarPreference extends Preference implements OnSeekBarChangeListener
{

    public SeekBarPreference(Context context)
    {
        super(context);
        Log.i("SBP", "In SBP!");
    }

    @Override
    public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {   
    }

    @Override
    public void onStartTrackingTouch(SeekBar arg0) {    
    }

    @Override
    public void onStopTrackingTouch(SeekBar arg0) {     
    }
}