具体方法:
例如你的布局是一个Linearlayout linear上面有一本Button btn1
要删除这个btn1要做的就是 linear.removeView( btn1 )
动态添加也是一样的
linear.addView( btn2 )
要注意的是,Button btn2 = new Button( context )这时候控件是没有大小的,必须设置控件大小以后添加了才能看到。设置控件大小的方法是view.setLayoutParams()
希望能够帮到你。
动态添加Android(安卓)控件步骤:1、addView
添加控件到布局容器
2、removeView
在布局容器中删掉已有的控件
3、使用
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
// 生成一个LinearLayout,作为布局容器来动态添加3个Button
final LinearLayout layout = new LinearLayout(this)
layout.setOrientation(LinearLayout.VERTICAL)
setContentView(layout)
// 生成3个Button
final Button btn1 = new Button(this)
btn1.setText("1")
btn1.setText("Button1")
final Button btn2 = new Button(this)
btn2.setText("2")
btn2.setText("Button2")
final Button btn3 = new Button(this)
btn3.setText("3")
btn3.setText("Button3")
// 动态把三个Button添加到
layout.addView(btn1)
layout.addView(btn2)
layout.addView(btn3)
// 点击按钮时,先把原来在布局容器layout上的删掉,再添加上局容器layout,这样本次添加的控件就会排序到最后,以理解动态添加控件的思路
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
layout.removeView(btn1)
layout.addView(btn1)
}
})
// 同btn1一样道理
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
layout.removeView(btn2)
layout.addView(btn2)
}
})
// 同btn1一样道理
btn3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
layout.removeView(btn3)
layout.addView(btn3)
}
})
setContentView(layout)
}
}
在主窗口Activety中加入控件,可以“可视化方式”添加,不需要自已填XML代码;在主窗口 res->layout->activety_main.xml 的
Graphical Layout中拖上三个控件 edittext1,edittext2,button
,并修改对象名称,这有点类似于可视化IDE;
进入可视化状态Graphical Layout,双击activety_main.xml前面的小图标。
步骤总结一下:
1. 新建一个工程Calc
2. 双击主窗口 res->layout->activety_main.xml 前面的小图标,
出现Graphical Layout可视化界面,拖上三个控件 edittext1,
edittext2,button,并修改对象名称,这有点类似于可视化IDE;
三个控件对象的初始参数就在资源中;
3. 手工添程序到 src-->MainActivety.java,四个步骤:
a.添三控件所涉及的import 头;
b.定义对象 edittext1,edittext2,button 于主类中;
c. 在onCreate()方法中,这三对象与资源id参数关联上;
d.写button的事件代码,并与控件button关联上;
package com.example.calc
import android.os.Bundle
import android.app.Activity
import android.view.Menu
import android.content.Intent
import android.view.View
import android.view.View.OnClickListener // Click事件包
import android.widget.EditText // EditText包
import android.widget.Button // Button包
public class MainActivity extends Activity {
EditText edittext1// 定义控件1
EditText edittext2// 定义控件2
Buttonbutton // 定义控件3
OnClickListener listener=null // Click事件定义
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
edittext1=(EditText)findViewById(R.id.edittext1)
edittext2=(EditText)findViewById(R.id.edittext2)
button=(Button)findViewById(R.id.button)
// 三对象与资源中属性参数关联上
listener=new OnClickListener() {
public void onClick(View v) {
String s=edittext1.getText().toString()
int i=Integer.parseInt(s)*2
edittext2.setText(String.valueOf(i))
// Click事件处理代码
}
}
button.setOnClickListener(listener) // 事件与Button关联上
}
// 。。。。。。。
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)