Button btNext=(Button)findViewById(R.id.next);
btNext.setOnClickListener(new Button.OnClickListener(){
public void onClick(View view){
//创建一个布局管理器控件
LinearLayout linearLayout=new LinearLayout(MainActivity.this);
setContentView(linearLayout);
//设置orientation为horizontal,1表示为vertical
linearLayout.setOrientation(0);
TextView tvSecond=new TextView(MainActivity.this);
tvSecond.setText("这是Android奉献给你的第二个页面");
Button btNext2=new Button(MainActivity.this);
btNext2.setText("下一步");
btNext2.setId(2);
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
linearLayout.addView(tvSecond,lp1);
linearLayout.addView(btNext2,lp1);
btNext2.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
//这次只放置一个TextView不需要布局管理器
TextView tv3=new TextView(MainActivity.this);
tv3.setText("恭喜你已来到最后一个页面!");
//直接让页面显示一个TextView
setContentView(tv3);
}
});
}
});
类似
Button btNext=(Button)findViewById(R.id.next);
btNext.setOnClickListener(new ButtonCreateClickListener()); }
private class ButtonCreateClickListener implements View.OnClickListener {
public void onClick(View view) {
//创建一个布局管理器控件
LinearLayout linearLayout = new LinearLayout(MainActivity.this);
setContentView(linearLayout);
//设置orientation为horizontal,1表示为vertical
linearLayout.setOrientation(0);
TextView tvSecond = new TextView(MainActivity.this);
tvSecond.setText("这是Android奉献给你的第二个页面");
Button btNext2 = new Button(MainActivity.this);
btNext2.setText("下一步");
btNext2.setId(2);
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
linearLayout.addView(tvSecond, lp1);
linearLayout.addView(btNext2, lp1);
btNext2.setOnClickListener(new btNext2ClickListener());
}
} private class btNext2ClickListener implements View.OnClickListener { public void onClick(View v) {
//这次只放置一个TextView不需要布局管理器
TextView tv3 = new TextView(MainActivity.this);
tv3.setText("恭喜你已来到最后一个页面!");
//直接让页面显示一个TextView
setContentView(tv3); }
}

创建按钮

  Button btNext=(Button)findViewById(R.id.next);
btNext.setOnClickListener(new ButtonCreateClickListener()); }
private class ButtonCreateClickListener implements View.OnClickListener {
public void onClick(View view) { //创建一个button按钮
Button btn1 = new Button( MainActivity.this);
btn1.setText("this is a button");
btn1.setId(1);
TableLayout pTableLayout=(TableLayout)findViewById(R.id.table2);
pTableLayout.addView(btn1); }
}

可以是

private class  ButtonCreateClickListener implements View.OnClickListener {
public void onClick(View view) { //创建一个button按钮
Button btn1 = new Button( MainActivity.this);
btn1.setText("this is a button");
btn1.setId(1);
TableRow pTableRow=(TableRow)findViewById(R.id.TableRow2);
pTableRow.addView(btn1); }
}

andriod 动态创建控件的更多相关文章

  1. 小子给大家分享一个或者多个新手创建tableview经常会遇到的坑(动态创建控件,xib的重用)

    小子最近做了一个根据接口返回的数据在Cell中动态创建控件,感觉应该会一部分人卡在这里,小子就跟大家分享一下: 1.控件重复创建:这个问题出现的原因是动态创建的cell内容的时候,无法进行重用设置,所 ...

  2. VisionPro笔记(1):动态创建控件

     VisionPro学习笔记(1):动态创建控件 有的时候可能需要在程序中动态创建控件,VisionPro实例中提供了一例动态创建Blob控件的方法.当然,动态创建过多的控件会极大的消耗系统的资源,建 ...

  3. 【转载】MFC动态创建控件及其消息响应函数

    原文:http://blog.sina.com.cn/s/blog_4a08244901014ok1.html 这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)h ...

  4. MFC动态创建控件及其消息响应函数

    这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)http://topic.csdn.net/u/20101204/13/5f1b1e70-2f1c-4205-ba ...

  5. delphi动态创建控件

    动态创建控件 其实动态创建控件很简单,相信看过本文后你会全明白的. 1 先在单元的initialization 部分注册它,(这样在单元使用时会自动注册的)如: RegisterClass( TBut ...

  6. MFC 动态创建控件

    动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的.   一.创建动态控件:   为了对照,我们先来看一下静态控件的创建.   放置静态控件时必须先建立一个容器,一 ...

  7. 在DELPHI中动态创建控件以及控件的事件

    在DELPHI中我们经常要动态的创建控件以及控件的事件.例如,我们可能想根据程序需要动态的创建一些Tshape组件来创建某个图形,并使得在鼠标移动上去之后可以完成某些操作.这一般需要需要三步: 生成一 ...

  8. Winfrom动态创建控件

    FlowLayoutPanel flowLayoutPanel1 = new FlowLayoutPanel();for (int i = 0; i < 9; i++){    Button b ...

  9. 动态创建控件 #Create(...)

    在类中创建一个控件对象;例:CButton m_btn; 用Create创建一个对象(#其实已经与其绑定)m_btn.Create(.....); #注意Create()函数的参数 问题一:点击一个b ...

随机推荐

  1. C# 类型基础——你可能忽略的技术细节

    引言 本文之初的目的是讲述设计模式中的 Prototype(原型)模式,但是如果想较清楚地弄明白这个模式,需要了解对象克隆(Object Clone),Clone 其实也就是对象复制.复制又分为了浅度 ...

  2. Android:如何从堆栈中还原ProGuard混淆后的代码

    本文翻译自Android: How To Decode ProGuard's Obfuscated Code From Stack Trace 本篇文章是写给那些在他们的应用中使用ProGuard并且 ...

  3. mac x Yosemide(10.10) 下安装 jdk 1.7 (jdk 1.8)的方法

    当我们想在mac x yosemide 系统中更新jdk到1.7(1.8)的时候,会弹出下面的错误提示 解决这个问题的办法如下: 1.下载 好jdk 1.7(1.8) 地址:http://www.or ...

  4. perl备忘

    List Operators: sort reverse grep map my @castways = sort qw( first second third); # qw 给单词自动加上双引号 g ...

  5. struts2完全捕获404错误的方法

    目前在做一个网络应用程序,struts2 + spring + hibernate,服务器是tomcat.希望用户在IE地址栏乱敲的时候,所敲入的所有未定义的URL都能被程序捕捉到,然后转到一个自制的 ...

  6. Physical Based Shading in Unreal Engine 3

    Roughness = 0.1roughness = 0.4roughness = 0.7roughness = 0.999 以上的Fresnel 0° = {1.0,0.86.0.57}(PS: 近 ...

  7. ruby -- 基础学习(三)设置中国时区时间

    Rails连接MYSQL数据库,默认显示UTC时间.如果想要改成中国时区时间,按照下面修改: 在config/application.rb中找到 class Application < Rail ...

  8. Xcode-打开代码折叠带

    preferences --> Text Editing --> 打勾Code folding ribbon

  9. C++ 封装互斥对象

    多线程程序中为了防止线程并发造成的竞态,需要经常使用到Mutex进行数据保护.posix提供了phtread_mutex_t进行互斥保护数据.Mutex的使用需要初始化和释放对应(phtread_mu ...

  10. .Net魔法堂:史上最全的ActiveX开发教程——部署篇

    一.前言 接<.Net魔法堂:史上最全的ActiveX开发教程——发布篇>,后我们继续来部署吧! 二. 挽起衣袖来部署   ActiveX的部署其实就是客户端安装ActiveX组件,对未签 ...