Android:AdapterView不支持addView(View)

时间:2015-06-30 15:31:50

标签: java android android-preferences

我有一个PreferenceFragment,显示一个动态的偏好列表,这样实现;

public class ConfigFragment extends PreferenceFragment {

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

       addPreferencesFromResource(R.xml.settings);

       for(int i = 0; i<items.size();i++) {

          SettingsScreen s = new SettingsScreen(getActivity());

          PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(getActivity());
          screen.setTitle(itemName);
          screen.addPreference(s);
          indicatorCategory.addPreference(screen);
      }
}

SettingsScreen源自“首选项”并显示自定义布局;

public class SettingsScreen extends Preference {

@Override
protected View onCreateView(ViewGroup group) {

    LayoutInflater li = (LayoutInflater)getContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE );

    View v = li.inflate(R.layout.indicator_config, group, false);

    return v;
}

到目前为止工作正常。我现在面临的问题是当我尝试动态地向SettingsScreen添加视图时。 以下将导致标题中声明的崩溃(UnsupportedOperationException:AdapterView中不支持addView(View));

Button b = new Button(getContext);
group.addView(b);

那么如何动态地将视图添加到SettingsScreen?

1 个答案:

答案 0 :(得分:2)

在stackoverflow上没有多少关于Android的事情我猜...

无论如何,要回答我自己的问题;诀窍不是直接向视图添加子视图,而是添加到视图的布局;

videoPlayer.scaleMode = "stretch";