本篇是說明如何動態產生控制項,
一般的控制項寫法是在.xml檔中直接拉控制項在畫面上,
可以動態產生的控制項的好處是,可以動態產生,也就可以動態刪除,
這一個範例是將TextVIEW, EditText以及Button,用addView()動態置入LinearLayout中,
MainActivity.java
package com.example.demoui;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView txtview;
private EditText edittxt;
private Button btn;;
private LinearLayout llayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
llayout = (LinearLayout) findViewById(R.id.mainlayout);
//程式碼中動態建立控制項
txtview = new TextView(this);
txtview.setText("demo ui code");
//將控制項加入LinearLayout中,使用addView()
llayout.addView(txtview);
edittxt = new EditText(this);
llayout.addView(edittxt);
btn = new Button(this);
btn.setText("Click me");
llayout.addView(btn);
//使用Button的SetOnCliclListener寫入按下按鈕時的動作內容
btn.setOnClickListener(btnclick); //將onClick移到外面,讓程式看起來簡潔
}
Button.OnClickListener btnclick = new Button.OnClickListener(){
@Override
public void onClick(View view) {
//將txtview的背景設成黃色
txtview.setBackgroundColor(Color.YELLOW);
//在editext中顯示文字
edittxt.setText("Button is clicked");
}
};
}
activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
手機螢幕顯示:
未按按鈕前
按下按鈕後
留言列表