我创建了两个活动。一个用于保存首选项片段,另一个用于保持按钮点击按钮,它应显示首选项片段。 没有出现错误但是当我点击按钮时会弹出一个空白屏幕而不是我创建的设置布局。 我已尝试过这个网站上的所有内容,但没有任何作用。 我在这里包含了代码,非常感谢您的帮助。 MainActivity.java
package com.example.vavi.settings;
import android.content.Intent;
import android.preference.PreferenceFragment;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new
Intent(getApplicationContext(),defaultPref.class));
}
});
}
}
这是第二个活动的代码 defaultPref.java
package com.example.vavi.settings;
import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import android.support.annotation.Nullable;
/**
* Created by VAVI on 4/4/2018.
*/
public class defaultPref extends PreferenceActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable
PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.default_pref);
getFragmentManager().beginTransaction().replace(R.id.rep, new
PrefFrag()).commit();
}
public static class PrefFrag extends PreferenceFragment{
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference);
}
}
}
我在Manifest文件中包含了第二个活动。 但是当我点击按钮时,会出现一个空白屏幕。
答案 0 :(得分:0)
用以下代码替换您的代码:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.default_pref);
getFragmentManager().beginTransaction().replace(R.id.rep, new
PrefFrag()).commit();
}
删除此方法:
@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable
PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.default_pref);
getFragmentManager().beginTransaction().replace(R.id.rep, new
PrefFrag()).commit();
}
您的最终代码:
public class defaultPref extends PreferenceActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.default_pref);
getFragmentManager().beginTransaction().replace(R.id.rep, new
PrefFrag()).commit();
}
public static class PrefFrag extends PreferenceFragment{
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference);
}
}
}