Android程序不仅可以像《【Android】利用xml文件布局修改Helloworld程序》(点击打开链接)利用xml文件进行布局,也可以利用纯Java代码布局,当然不推荐单单只使用一种布局方式。xml与Java代码布局应该混合存在,正如在网页编程中,html布局与javascript动态控制布局应该是共存的,这里用一个小例子来说明如何用Java代码在Android中进行布局。同时,为按钮添加点击事件。

如下的一个例子:

【Android】利用Java代码布局,按钮添加点击事件_第1张图片

在JavaLayout这个安卓程序中,有一个横向铺满的按钮,高度同文字高度的按钮。

点击之后出现一个告警框。点击告警框之后,会根据用户点击按钮,设置按钮内的文字。

直接把安卓工程内的MainActivity.java修改成如下的代码,则完成上面的工程:

package com.javalayout;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.util.TypedValue;import android.view.Gravity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.Button;import android.widget.FrameLayout;public class MainActivity extends Activity {public Button button1;// 声明一个按钮组件@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// setContentView(R.layout.activity_main); //不使用activity_main.xml布局FrameLayout frameLayout = new FrameLayout(this);//声明一个帧布局button1 = new Button(this);//创建一个按钮button1.setText("打开模态确定框!");// 设置按钮内的文字button1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24);// 设置组件文字大小,单位为DIP,安卓屏幕通用单位LayoutParams params = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,//在宽度上铺满父组件ViewGroup.LayoutParams.WRAP_CONTENT);//在高度上仅仅包裹好自己的内容button1.setLayoutParams(params);//把以上的参数应用到button1中button1.setGravity(Gravity.CENTER);// 组件内文字的居中button1.setOnClickListener(new OnClickListener() {//为button1添加点击事件@Overridepublic void onClick(View v) {new AlertDialog.Builder(MainActivity.this)//点击之后将会创建一个告警框.setTitle("系统提示")//告警框标题.setMessage("请点击确定或取消")//告警框内容.setPositiveButton("确定",//告警框的确定按钮new DialogInterface.OnClickListener() {//为告警框的确定按钮的添加点击事件@Overridepublic void onClick(DialogInterface arg0,int arg1) {button1.setText("你点击了确定!");//点击之后修改button1这个组件内的文件}}).setNegativeButton("取消",//取消按钮同理new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface arg0,int arg1) {button1.setText("你点击了取消!");}}).show();//默认点击之后不显示告警框,必须设置其显示}});frameLayout.addView(button1);//将button1加到帧布局frameLayoutsetContentView(frameLayout);// 将帧布局frameLayout放在MainActivity}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
其布局思想如下,非常简单,在一个帧布局下放一个button1。

【Android】利用Java代码布局,按钮添加点击事件_第2张图片

个人感觉安卓利用java代码布局有javascript的味道,而为按钮添加事件,则由于Jquery一样,可以使用多个点方法.setXX()也就是类成员setter方法,一口气设置大量的东西。

更多相关文章

  1. Android 开发之深入分析布局文件&又是“Hello World!”
  2. LayoutTransition 容器布局动画
  3. Android SDK工具:使用layoutopt进行布局优化
  4. Android OpenGL ES(六)----进入三维在代码中创建投影矩阵和旋转
  5. SPDY协议的Android实现 OKHTTP代码分析
  6. 源码分析android 系统framework(二)之view的布局加载流程
  7. Android Support库百分比布局
  8. 相对布局属性详解

随机推荐

  1. Android(安卓)Studio安装、配置
  2. Android修改原生RatingBar颜色、大小,以及
  3. Android(安卓)应用程序进程启动过程源码
  4. 无废话Android之smartimageview使用、and
  5. Android(安卓)应用 APK 签名常用配置
  6. intent
  7. android 关于焦点的获取与监听失效问题的
  8. Android模拟器adb命令介绍
  9. 003.android资源文件剖析(Resources)
  10. Android(安卓)rom开发:通过拨号使用暗码打