2015-06-30 32 views
0

我有一個PreferenceFragment顯示偏好的動態列表,實現像這樣;Android:addView(查看)不支持AdapterView

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:addView(View)在AdapterView中不受支持);

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

那麼我該如何動態地將視圖添加到SettingsScreen?

回答

1

不多回事了Android在這裏計算器我猜...

總之,要回答我的問題;技巧是不直接向視圖添加子視圖,而是向視圖的佈局添加子視圖;

View v = li.inflate(R.layout.indicator_config, group, false); 
LinearLayout r = (LinearLayout) v.findViewById(R.id.configLayout); 
Button b = new Button(getContext); 
r.addView(b); 
相關問題