了解了5大布局,我们会发现这些布局都是静态的,如何让系统自动生成控件呢?这就需要activity来帮忙了

  今天我们讲的就是用activity新建布局

  用案例来说吧!

  实现一个输入行和列自动生成表格并生成背景颜色

  效果如图

    

  代码如下:

  

<?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="vertical"
> <EditText android:id="@+id/text_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left|top"
android:ems="10"
android:hint="@string/text_row"
android:inputType="number"> <requestFocus />
</EditText> <EditText
android:id="@+id/text_column"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left|top"
android:ems="10"
android:hint="@string/text_column"
android:inputType="number"
/> <Button
android:id="@+id/btn_commit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:text="@string/btn_commit"
/>
</LinearLayout> <TableLayout
android:layout_weight="1"
android:id="@+id/tablelayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" > </TableLayout> </LinearLayout>
 package com.example.linearlayout;

 import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast; public class MainActivity extends Activity {
private TextView text_column;
private TextView text_row ;
private TableLayout tabLay;
private int length = 64;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout2);
//获取控件按钮
Button btn_commit = (Button) findViewById(R.id.btn_commit);

      //获取控件textview
text_column = (TextView) findViewById(R.id.text_column);
text_row= (TextView) findViewById(R.id.text_row); //给按钮设置点击事件
btn_commit.setOnClickListener(new OnClickListener(){ @Override
public void onClick(View v) {
                 //获取文本值
String column = text_column.getText().toString().trim();
String row = text_row.getText().toString().trim();
   //判断是否为空
if(column.length() != 0 && row.length() != 0){
//获取控件布局
tabLay= (TableLayout) findViewById(R.id.tablelayout); //先清空
tabLay.removeAllViewsInLayout();
tabLay.setStretchAllColumns(true);
//强转整型
int x =Integer.parseInt(text_column.getText().toString()); //??
int y =Integer.parseInt(text_row.getText().toString());   //for循环嵌套
for(int m = 0 ; m < y; m++ ){ TableRow tr = new TableRow(MainActivity.this); for(int n = 0 ; n < x ; n++ ){ TextView tv = new TextView(MainActivity.this); //tv.setText("("+n+","+m+")");
tv.setText(" ");
tr.addView(tv);
  //获取参数,设置背景颜色值
int result = m*n +2*n-1;
int red = result / 16/16 ;
int green = ( result - red*16*16)/16;
int blue = result - red*16*16 - green*16; tv.setBackgroundColor(Color.rgb(red*16, green*16, blue*16)); }
tabLay.addView(tr); } }else{
Toast.makeText(MainActivity.this,"请输入行和列",1).show();
}
}
}); }
}

    

Android之activity中新建控件的更多相关文章

  1. Android在代码中设置控件的drawableLeft,drawableRight,drawableTop,drawableBottom。

    根据业务的需要,要在代码中设置控件的drawableLeft,drawableRight,drawableTop,drawableBottom属性. 我们知道在xml中设置的方法为:android:d ...

  2. Android 在OnCreate()中获取控件高度与宽度

    试过在OnCreate()中获取控件高度与宽度的童鞋都知道,getWidth()与getHeight()方法返回是0,具体原因 看一下Activity的生命周期 就会明白. 上代码: 方法一: int ...

  3. Android 在Fragment中修改Activity中的控件

    在当前的Fragment中调用getActivity方法获取依附着的那个Activity,然后再用获取到的Activity去findViewById拿到你需要的控件对其操作就行了.

  4. Android在OnCreate中获取控件的宽度和高度

    在Android中,有时需要对控件进行测量,得到的控件宽度和高度可以用来做一些计算.在需要自适应屏幕的情况下,这种计算就显得特别重要.另一方便,由于需求的原因,希望一进入界面后,就能得到控件的宽度和高 ...

  5. Qt中在UI文件中新建控件并命名,但在代码中无法识别UI中的控件?

    代码中添加FilePathLineEdit控件,显示标准文件选择对话框显示选择的文件路径,但在槽函数中ui->FilePathLineEdit->setText("FilePat ...

  6. Android在onCreate中获取控件的宽高

    在某些需求下,我们需要在onCreate的时候就获取到控件的宽高,但是如果直接用view.getWidth()或view.getHeight()会得到0.这是因为在onCreate执行的时候,控件还没 ...

  7. activity 中获取控件的宽高

    1.第一种方式: TextView textview3 = findViewById(R.id.textview3); textView3.post(new Runnable() { @Overrid ...

  8. Android在onCreate()中获得控件尺寸

    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceSt ...

  9. fragment中获取activity中的控件

随机推荐

  1. Spring异常累计(1)Spring注解与扫描,NoUniqueBeanDefinitionException

    spring中可以使用注解机制,代替传统的在xml中配置一个bean. 如 <pre name="code" class="java">@Compo ...

  2. msp430FR5739 FRAM的学习

    FRAM,中文名称为铁电存储器..FRAM提供一种与RAM一致的性能,但又有与ROM 一样的非易失性. FRAM 克服以上二种记忆体的缺陷并合并它们的优点,它是全新创造的产品,一个非易失性随机存取储存 ...

  3. Docker run命令详解 转

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Usage: doc ...

  4. 物流公司统计按物资类别采购的前二十家sql

    2.集团主要的供应商(按物资分类列举前10或20家名单),年采购金额.占比,结算方式,付款周期:(夏) 年份要求是2013年 arap_djfb中的单据日期不是常规的日期类型 需要做这样的转换才可以 ...

  5. c# 高效率导出多维表头excel

    [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int GetWindowThread ...

  6. 每天一个 Linux 命令(13):less 命令

    less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more 更加的有弹性. 在 more 的时候,我们并没有办法向前面 ...

  7. linux 平均负载 load average 的含义

      load average 的含义 平均负载(load average)是指系统的运行队列的平均利用率,也可以认为是可运行进程的平均数. 以路况为例, 单核CPU.单车道 情况如下: 0.00-1. ...

  8. centos之Haproxy 负载均衡学习笔记

    HAProxy的特点是:1.支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机:2.能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作3.支持url检测后端的 ...

  9. window7下使用vagrant打造lamp开发环境(一)

    前言: 公司电脑只有win7 + (xampp || wamp)开发,处于个人爱好,想学习下在最舒服的开发环境下开发,也不想安装双系统,想用Vmware电脑却配置不高,vagrant+virtual ...

  10. Linux下find命令

    转自:http://www.cnblogs.com/skynet/archive/2010/12/25/1916873.html 1.1.find命令的一般形式 man文档中给出的find命令的一般形 ...