有几个问题已经在询问这个问题,但我找不到解决方案。我有一个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();
}
}
答案 0 :(得分:1)
您可以动态创建视图:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText("Hello");
setContentView(textView);//<----set the view !
}
}