有几个问题已经问过了,但我找不到解决办法。我有一个LiveWallpaper,它使用自己的PreferenceFragment子类来指定首选项。最常引用的解决方案是确保setContentView()在findViewByID()之前被调用。我根本没有调用setContentView(),因为我没有指定的布局。这个应用程序最初使用PreferenceActivity.getPreferenceManager()之类的不推荐的方法来实现首选项,而不使用布局,并且工作得很好。我正在尝试在使用PreferenceFragment时更新代码。
我是否需要有一个布局,如果是的话,当我真的不想要的时候,我会有什么呢?
还是有另一种获取/设置视图的方法?
public class SetPreferenceActivity extends Activity {
private CheckBox redCheckBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main); ???
redCheckBox = (CheckBox)findViewById(R.id.redCheckBox); // returns null
getFragmentManager().beginTransaction().replace(android.R.id.content, new LiveWallpaperPreferenceFragment()).commit();
}
} 发布于 2013-05-20 20:11:59
您可以动态创建视图:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText("Hello");
setContentView(textView);//<----set the view !
}
} https://stackoverflow.com/questions/16657500
复制相似问题