首选项屏幕不显示。启动时出现空白屏幕 activity
preference screen does not show up. Empty screen shows up on launching activity
我创建了两个活动。一个用于保存偏好片段,一个用于保存按钮。单击按钮时,它应该显示首选项片段。
没有显示错误,但是当我单击按钮时,会弹出一个空屏幕,而不是我创建的设置布局。
我已经尝试了该网站上的所有内容,但没有任何效果。
我在这里包含了代码,非常感谢您的帮助。
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));
}
});
}
}
这是第二个的代码activity
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);
}
}
}
我已将第二个 activity 包含在清单文件中。
但是当我点击按钮时,会出现一个空白屏幕。
将您的代码替换为:
@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);
}
}
}
我创建了两个活动。一个用于保存偏好片段,一个用于保存按钮。单击按钮时,它应该显示首选项片段。 没有显示错误,但是当我单击按钮时,会弹出一个空屏幕,而不是我创建的设置布局。 我已经尝试了该网站上的所有内容,但没有任何效果。 我在这里包含了代码,非常感谢您的帮助。 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));
}
});
}
}
这是第二个的代码activity 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);
}
}
}
我已将第二个 activity 包含在清单文件中。 但是当我点击按钮时,会出现一个空白屏幕。
将您的代码替换为:
@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);
}
}
}