動態文字排版(GridView與ArrayAdapter)
新建一個繼承Activity類的GridViewAndArrayAdapterActivity,並設置佈局文件爲:gridviewandarrayadapter.xml。
首先在佈局文件中添加3個組件:2個Button、GridView.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" >
<Button android:id="@+id/gridviewandarrayadapter_btn01" style="@android:style/Widget.Button.Inset" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/showtwolines" />
<Button android:id="@+id/gridviewandarrayadapter_btn02" style="@android:style/Widget.Button.Inset" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/showfourlines" /> </LinearLayout>
<GridView android:id="@+id/gridviewandarrayadapter_gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="3" > </GridView>
</LinearLayout> |
接着在Activity代碼中修改。
package lyx.feng.second; ...... public class GridViewAndArrayAdapterActivity extends Activity implements OnClickListener { private Button btn01 = null; private Button btn02 = null; private GridView gv = null; private String item[] = new String[20]; private ArrayAdapter<String> adapter = null;
@Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); initViews(); }
private void initViews() { super.setContentView(R.layout.gridviewandarrayadapter); this.btn01 = (Button) super .findViewById(R.id.gridviewandarrayadapter_btn01); this.btn02 = (Button) super .findViewById(R.id.gridviewandarrayadapter_btn02); this.gv = (GridView) super .findViewById(R.id.gridviewandarrayadapter_gridview); this.btn01.setOnClickListener(this); this.btn02.setOnClickListener(this); // 默認btn02不可點擊 this.btn02.setEnabled(false); // 初始化數組內容 for (int i = 0; i < this.item.length; i++) { item[i] = "Item" + String.valueOf(i); } // 初始化Adapter this.adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, this.item); // 綁定適配器Adapter this.gv.setAdapter(adapter); }
@Override public void onClick(View v) { switch (v.getId()) { case R.id.gridviewandarrayadapter_btn01: this.gv.setNumColumns(2); // 更改按鈕狀態 this.btn01.setEnabled(false); this.btn02.setEnabled(true); break; case R.id.gridviewandarrayadapter_btn02: this.gv.setNumColumns(4); // 更改按鈕狀態 this.btn01.setEnabled(true); this.btn02.setEnabled(false); break; } } }
|