使用可在运行时读取的任意XML文件

时间:2012-11-28 06:43:57

标签: android xml android-preferences

这是我使用Activity方法的setContentView。在这个应用程序中,我在xml文件夹中使用res文件夹,并在其中放入prefs.xml文件。

公共类SetWallpaperActivity扩展了Activity {

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(android.R.xml.);
    //setContentView(R.xml.prefs.xml);
    setContentView(android.R.xml.); //   This line GENERATE ERROR...
}

这是我的prefs.xml文件:

 <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="schemas.android.com/apk/res/android"; >    
     <CheckBoxPreference android:key="touch" android:title="Enable Touch">/CheckBoxPreference>
    <EditTextPreference android:key="numberOfCircles" android:title="Number of Circles"></EditTextPreference> 
</PreferenceScreen> 

1 个答案:

答案 0 :(得分:1)

根据您发布的评论(其中包含首选项)的xml文件判断,您可能正在设置一个设置屏幕,用户可以从该设置屏幕为您的应用设置各种首选项。如果是这种情况,那么您需要扩展PreferenceActivity类而不是普通的Activity

public class SetWallpaperActivity extends PreferenceActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.the_name_of_the_xml_file); // R.xml.prefs.xml from your code
    }
}

另请参阅android developers site上关于此的官方指南。

您无法将内容视图设置为res/xml文件夹中的xml文件,因为setContentView需要布局文件的ID(以R.layout.the_layout_file的形式)。