0

已经有几个问题在问这个问题,但我没有找到解决方案。我有一个 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();  
    }  
}  
4

1 回答 1

1

您可以动态创建视图:

@Override  
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  

    TextView textView = new TextView(this);
    textView.setText("Hello");

    setContentView(textView);//<----set the view !

    }  
} 
于 2013-05-20T20:11:59.567 回答