Android代碼動態介面布局,以及fragment代碼範例
來源:互聯網
上載者:User
1. addview in a layout
setContentView(R.layout.activity_tab_trade);LinearLayout mainLayout = (LinearLayout) findViewById(R.id.layout_tab_trader);RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout_tab_tradertitle);String[] strLeft = new String[] {"111","222"};String[] strRight = new String[] {"AAA","BBB"};lefttext = new TextView[strLeft.length];for(int i =0;i<strLeft.length; i++){RelativeLayout addLayout = new RelativeLayout(this);RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(layout.getLayoutParams());
//params.addRule(RelativeLayout.BELOW, lefttext[i].getId());params.addRule(RelativeLayout.ALIGN_PARENT_LEFT ); lefttext[i] = new TextView(this);lefttext[i].setText(strLeft[i]);addLayout.addView(lefttext[i], params); LinearLayout.LayoutParams p = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT ); mainLayout.addView(addLayout,p);}2. create a fragment in ActivityA. fragment codepublic static NewOrderFragment newInstance(Bundle args) {NewOrderFragment f = new NewOrderFragment();f.setArguments(args);return f;}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this._Activity = this.getActivity();this.getActivityRegisterBoradcastReceiver();}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment_order, container,false);return view;}@Overridepublic void onDestroy() {super.onDestroy();if(TraderPreferences._CONNECT_NET)this.getActivity().unregisterReceiver(mBroadcastReceiver);}B. xml Code<!-- <fragment android:id="@+id/fragment_neworder" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" class="com.omnicare.trader.activity.NewOrderActivity$NewOrderFragment" /> --> <FrameLayout android:id="@+id/fragment_newOrder_container" android:layout_weight="1" android:layout_width="0dip" android:layout_height="match_parent" ></FrameLayout>
C. Activity CodesetContentView(R.layout.fragment_contain);// if (savedInstanceState == null){//NewOrderFragment newOrderFragment = NewOrderFragment.newInstance(this.getIntent().getExtras());this.getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, newOrderFragment).commit();} else {setContentView(R.layout.activity_new_order);NewOrderFragment newOrderFragment = NewOrderFragment.newInstance(this.getIntent().getExtras());FragmentTransaction ft = this.getSupportFragmentManager().beginTransaction();ft.add(R.id.fragment_newOrder_container, newOrderFragment).commit();//ft.replace(R.id.fragment_neworder, newOrderFragment).commit();findView();