了解了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中新建控件的更多相关文章
-
Android在代码中设置控件的drawableLeft,drawableRight,drawableTop,drawableBottom。
根据业务的需要,要在代码中设置控件的drawableLeft,drawableRight,drawableTop,drawableBottom属性. 我们知道在xml中设置的方法为:android:d ...
-
Android 在OnCreate()中获取控件高度与宽度
试过在OnCreate()中获取控件高度与宽度的童鞋都知道,getWidth()与getHeight()方法返回是0,具体原因 看一下Activity的生命周期 就会明白. 上代码: 方法一: int ...
-
Android 在Fragment中修改Activity中的控件
在当前的Fragment中调用getActivity方法获取依附着的那个Activity,然后再用获取到的Activity去findViewById拿到你需要的控件对其操作就行了.
-
Android在OnCreate中获取控件的宽度和高度
在Android中,有时需要对控件进行测量,得到的控件宽度和高度可以用来做一些计算.在需要自适应屏幕的情况下,这种计算就显得特别重要.另一方便,由于需求的原因,希望一进入界面后,就能得到控件的宽度和高 ...
-
Qt中在UI文件中新建控件并命名,但在代码中无法识别UI中的控件?
代码中添加FilePathLineEdit控件,显示标准文件选择对话框显示选择的文件路径,但在槽函数中ui->FilePathLineEdit->setText("FilePat ...
-
Android在onCreate中获取控件的宽高
在某些需求下,我们需要在onCreate的时候就获取到控件的宽高,但是如果直接用view.getWidth()或view.getHeight()会得到0.这是因为在onCreate执行的时候,控件还没 ...
-
activity 中获取控件的宽高
1.第一种方式: TextView textview3 = findViewById(R.id.textview3); textView3.post(new Runnable() { @Overrid ...
-
Android在onCreate()中获得控件尺寸
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSt ...
- fragment中获取activity中的控件
随机推荐
-
[LeetCode] Spiral Matrix 螺旋矩阵
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...
-
sql 索引 的建立
(From:http://54laobaixing.blog.163.com/blog/static/57843681200952411133121/) 假设你想找书中的某一个句子.你可以一页一页地逐 ...
-
vs2010调试程序出现“Cannot find or open the PDB file”
项目中源程序编写好以后, (一个简单的小程序) #include int main(void) { int age; int day; age = 24; printf("tom is %d ...
-
tomcat+dbcp+jndi 配置
1)添加jar包 tomcat6中 TOMCAT_HOME/lib 下是公用jar包 dbcp需要3个jar包:Jakarta-Commons DBCP,Jakarta-Commons Collect ...
-
bzoj1197
水题,画个图推一下低维的就什么都明白了 从低维类推高维 ..,..] of int64; n,m,j,i:longint; begin readln(m,n); to n do f[i,]:=; to ...
-
c# listview导出excel文件
首先在工程中需要添加对Microsoft Excel office 11.0 object的引用 生成excel的类代码如下 using System; using System.Collection ...
-
Spring 文件上传MultipartFile 执行流程分析
在了解Spring 文件上传执行流程之前,我们必须知道两点: 1.Spring 文件上传是基于common-fileUpload 组件的,所以,文件上传必须引入此包 2.Spring 文件上传需要在X ...
-
【VMware vSphere】使用U盘给戴尔服务器安装ESXi6.0系统
写在前面: 安装ESXi系统需要准备两个U盘,而且Raid已经做好 说明: 两个U盘,一个为启动盘(类似于大白菜),另一个作为安装系统使用(类似于 ...
-
Java千百问_05面向对象(011)_引用传递和值传递有什么差别
点击进入_很多其它_Java千百问 1.什么是值传递 值传递,是将内存空间中某个存储单元中存放的值,传送给还有一个存储单元.(java中的存储单元并不是物理内存的地址,但具有相关性) 比如: //定义 ...
-
tensorflow 模型保存
1.首先 saver = tf.train.Saver(max_to_keep=1)新建一个saver,max_to_keep是说只保留最后一轮的训练结果 2.使用save方法保存模型 saver.s ...