了解了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. 论文笔记之: Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function

    Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function CVPR 2 ...

  2. ASP.NET MVC+EF框架+EasyUI实现权限管理系列

    http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开 ...

  3. 存储OS

    openfiler这个登陆慢 是https协议的问题 http://www.getnas.com/open-source-nas FreeNAS®,目前最受欢迎的开源免费 NAS 操作系统之一,基于以 ...

  4. dedecms为后台自定义菜单的完整方法

    dedecms为后台自定义菜单的完整方法 品味人生 dedeCMS 围观7330次 18 条评论 编辑日期:2014-06-14 字体:大 中 小   最近在给客户定制一个企业网站,客户要求使用ded ...

  5. selenium下拉框选择

    下拉框结构如下,我需要选择的是new: html为: <select id="condition_type" name="condition_type" ...

  6. IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!)

    IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!) 1. -----------自动代码-------- 常用的有fori/sout/psvm+Tab即可生成循环.System.ou ...

  7. SSIS 参数与环境

    微软 BI 系列随笔 - SSIS 基础 - 参数与环境 简介 在上一篇博客中,主要讲述了如何实现SSIS的项目部署,参见 微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 项目部署模 ...

  8. VS2012打开解决方案崩溃或点击项目崩溃

    打开项目文件就VS2012就崩溃 解决方案: 步骤1:开始-->所有程序-->Microsoft Visual Studio 2012-->Visual Studio Tools-- ...

  9. 框架--NoHttp和OkHttp哪个好用,Volley和NoHttp哪个好用?

    NoHttp和OkHttp哪个好用,Volley和NoHttp哪个好用? NoHttp 源码及Demo托管在Github欢迎大家Star: https://github.com/Y0LANDA/NoH ...

  10. python模块介绍- SocketServer 网络服务框架

    来源:https://my.oschina.net/u/1433482/blog/190612 摘要: SocketServer简化了网络服务器的编写.它有4个类:TCPServer,UDPServe ...