`
serryzhao
  • 浏览: 115649 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用java来布局activity(贴个代码),动态生成页面,

阅读更多
虽然功能上实现了但是布局上不够漂亮,很丑啊,考虑用网页的方式来实现,思路如果可以借鉴请借鉴。作用主要是动态生成一些页面控件,大家有好的思路也可以提供给我啊。或者修改这段代码,layout.xml方式暂时不考虑

typeindex = 0;
		adindex = 0;
		for(int i = 0; i <list.size();i++){
			final int tempint = i;
			String flag = list.get(i).getFlg();
			RelativeLayout rel = new RelativeLayout(Act.this);
			rel.setGravity(Gravity.CENTER_HORIZONTAL);
			RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
					ViewGroup.LayoutParams.WRAP_CONTENT);
			if("1".equals(flag)){
				TextView t = new TextView(Act.this);
				t.setText("类 型:");
				t.setTextColor(R.color.define_blue);
				t.setTextSize(18);
				t.setId(1);
				RelativeLayout rel2 = new RelativeLayout(Act.this);
				RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
					ViewGroup.LayoutParams.WRAP_CONTENT);
				
				final EditText tt = new EditText(Act.this);
				tt.setBackgroundDrawable(getResources().getDrawable(R.drawable.select_edit));
				tt.setEnabled(false);
				tt.setSingleLine();
				tt.setId(2);
				ImageView image1 = new ImageView(Act.this);
				image1.setImageDrawable(getResources().getDrawable(R.drawable.select));
				image1.setOnClickListener(new OnClickListener() {
					
					@Override
					public void onClick(View v) {
						List<SelectBean> selectList = list.get(tempint).getList();
						final String[] names = new String[selectList.size()];
						final String[] ids = new String[selectList.size()];
						for(int i=0;i<selectList.size();i++){
							names[i] = selectList.get(i).getName();
							ids[i] = selectList.get(i).getId();
						}
						
						dialog =	 new AlertDialog.Builder(Act.this)
		                .setTitle("请选择类型")
		                .setSingleChoiceItems(names, typeindex, new DialogInterface.OnClickListener() {
		                    public void onClick(DialogInterface dialog, int whichButton) {
								typeindex = whichButton;
		                    }
		                }).setPositiveButton("确 定", new DialogInterface.OnClickListener() {
		                    public void onClick(DialogInterface dialog, int id) {
		                    	tt.setText(names[typeindex]);
		                    	typeStr = "&"+list.get(tempint).getArg_name()+"="+ids[typeindex];
		                    }
		               })
		               .setNegativeButton("取 消", new DialogInterface.OnClickListener() {
		            	   public void onClick(DialogInterface dialog, int id) {
		            		 
		                   }
		               }).create();
						dialog.show();
					}
				});
				rel2.addView(tt);
				lp2.addRule(RelativeLayout.RIGHT_OF, tt.getId());
				rel2.addView(image1,lp2);
				lp.addRule(RelativeLayout.RIGHT_OF,t.getId());
				
				rel.addView(t);
				rel.addView(rel2,lp);
			}else if("2".equals(flag)){
				TextView t = new TextView(Act.this);
				t.setText("前 缀:");
				t.setTextColor(R.color.define_blue);
				t.setTextSize(18);
				t.setId(1);
				RelativeLayout rel2 = new RelativeLayout(Act.this);
				RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
					ViewGroup.LayoutParams.WRAP_CONTENT);
				
				final EditText tt = new EditText(Act.this);
				tt.setBackgroundDrawable(getResources().getDrawable(R.drawable.select_edit));
				tt.setEnabled(false);
				tt.setSingleLine();
				tt.setId(2);
				ImageView image1 = new ImageView(Act.this);
				image1.setImageDrawable(getResources().getDrawable(R.drawable.select));
				image1.setOnClickListener(new OnClickListener() {
					
					@Override
					public void onClick(View v) {
						List<SelectBean> selectList1 = list.get(tempint).getList();
						final String[] namess = new String[selectList1.size()];
						final String[] idss = new String[selectList1.size()];
						for(int i=0;i<selectList1.size();i++){
							namess[i] = selectList1.get(i).getName();
							idss[i] = selectList1.get(i).getId();
						}
						
						dialog =	 new AlertDialog.Builder(Act.this)
		                .setTitle("前 缀:")
		                .setSingleChoiceItems(namess, adindex, new DialogInterface.OnClickListener() {
		                    public void onClick(DialogInterface dialog, int whichButton) {
		                    	adindex = whichButton;
		                    }
		                }).setPositiveButton("确 定", new DialogInterface.OnClickListener() {
		                    public void onClick(DialogInterface dialog, int id) {
		                    	tt.setText(namess[adindex]);
		                    	adStrx = namess[adindex];
		                    	adStr = "&"+list.get(tempint).getArg_name()+"="+idss[adindex];
		                    }
		               })
		               .setNegativeButton("取 消", new DialogInterface.OnClickListener() {
		            	   public void onClick(DialogInterface dialog, int id) {
		            	
		                   }
		               }).create();
						dialog.show();
					}
				});
				rel2.addView(tt);
				lp2.addRule(RelativeLayout.RIGHT_OF, tt.getId());
				rel2.addView(image1,lp2);
				lp.addRule(RelativeLayout.RIGHT_OF,t.getId());
				
				rel.addView(t);
				rel.addView(rel2,lp);
			}else if("3".equals(flag)){
				TextView t = new TextView(Act.this);
				t.setText("号 :");
				t.setTextColor(R.color.define_blue);
				t.setTextSize(18);
				t.setId(1);
				tt3 = new EditText(Act.this);
				tt3.setBackgroundDrawable(getResources().getDrawable(R.drawable.text));
				lp.addRule(RelativeLayout.RIGHT_OF,t.getId());
				rel.addView(t);
				rel.addView(tt3,lp);
			}else if("4".equals(flag)){
				TextView t = new TextView(Act.this);
				t.setText(" 号:");
				t.setTextColor(R.color.define_blue);
				t.setTextSize(18);
				t.setId(1);
				tt4 = new EditText(Act.this);
				tt4.setBackgroundDrawable(getResources().getDrawable(R.drawable.text));
				lp.addRule(RelativeLayout.RIGHT_OF,t.getId());
				rel.addView(t);
				rel.addView(tt4,lp);
			}else if("5".equals(flag)){
				TextView t = new TextView(Act.this);
				t.setText("代 码:");
				t.setTextColor(R.color.define_blue);
				t.setTextSize(18);
				t.setId(1);
				tt5 = new EditText(Act.this);
				tt5.setBackgroundDrawable(getResources().getDrawable(R.drawable.text));
				lp.addRule(RelativeLayout.RIGHT_OF,t.getId());
				rel.addView(t);
				rel.addView(tt5,lp);
			}else if("6".equals(flag)){
				TextView t = new TextView(Act.this);
				t.setText("编 号:");
				t.setTextColor(R.color.define_blue);
				t.setTextSize(18);
				t.setId(1);
				tt6 = new EditText(Act.this);
				tt6.setBackgroundDrawable(getResources().getDrawable(R.drawable.text));
				lp.addRule(RelativeLayout.RIGHT_OF,t.getId());
				rel.addView(t);
				rel.addView(tt6,lp);
			}else if("9".equals(flag)){
				TextView t = new TextView(Act.this);
				t.setText("号: ");
				t.setTextColor(R.color.define_blue);
				t.setTextSize(18);
				t.setId(1);
				tt9 = new EditText(Act.this);
				tt9.setBackgroundDrawable(getResources().getDrawable(R.drawable.text));
				lp.addRule(RelativeLayout.RIGHT_OF,t.getId());
				rel.addView(t);
				rel.addView(tt9,lp);
			}
			
			linear.addView(rel);
		}
	}


  • 大小: 25.6 KB
分享到:
评论

相关推荐

    Activity中用代码动态加载布局

    本篇文章将详细介绍如何在Activity中用代码动态加载布局。 首先,我们需要理解Android的布局系统。通常,我们使用XML文件来设计和定义UI元素,这些文件存储在`res/layout`目录下。例如,我们可以创建一个名为`...

    java代码动态生成控件

    总结一下,Java代码动态生成控件是Android开发中的一个重要技巧,它提供了构建灵活、可扩展用户界面的能力。通过理解并实践这个技术,开发者可以创建更符合用户需求的应用,同时减少对XML布局文件的依赖。

    android 布局生成图片

    在实际项目中,为了提高代码的复用性和易用性,我们可以封装一个工具类,如`LayoutToImageUtils`,提供一个静态方法来完成布局转图片的过程。这样,只需要一行代码就能实现布局的截图,如`Bitmap bitmap = ...

    Android动态生成布局带点击事件

    动态生成布局就是通过实例化这些View对象并在父布局中添加它们来实现的。 1. **创建View对象** - 可以通过调用特定View类的构造函数来创建新的视图对象。例如,创建一个TextView: ```java TextView textView = ...

    安卓动态生成按钮与动态减少按钮

    动态生成按钮时,我们需要选择合适的布局管理器来容纳这些按钮。 2. **Java代码生成按钮**: 动态创建按钮并非在XML布局文件中定义,而是在Java代码中实现。首先,你需要创建一个Button对象,设置其属性如文本、...

    原生Android代码生成器

    这个工具特别适用于处理与XML相关的任务,如视图绑定、布局解析或者根据XML资源文件自动生成对应的Java代码。 在Android开发中,XML通常用于定义界面布局和资源。例如,`activity_main.xml`文件会定义一个活动...

    android自动生成代码

    这个主题主要涉及两个方面:一是从布局文件生成对应的Java代码声明,二是自动生成控件的赋值代码。这两部分将帮助开发者更快地完成视图层与逻辑层的连接,降低出错概率。 首先,我们来看看如何自动生成Java代码声明...

    Android-AndroidStudio自动生成布局代码插件

    总的来说,"Android-AndroidStudio自动生成布局代码插件"是一个非常实用的工具,尤其适合那些频繁处理布局初始化和Adapter编写的开发者。通过自动化这些常见任务,它能够显著提高开发效率,使开发者有更多的时间去...

    动态生成button以及点击事件

    接下来,在Activity或Fragment的Java代码中,我们可以获取到这个LinearLayout,并进行动态创建Button的操作。这里以MainActivity为例: ```java import androidx.appcompat.app.AppCompatActivity; import android....

    android根据layout文件生成activity及自动注册 Demo

    - 使用代码生成工具,如JavaPoet或Kotlin的Anvil库,动态生成Activity的源代码,并保存到项目的源码目录。 2. **自动注册Activity**: - 在AndroidManifest.xml中,所有需要的Activity都需要声明。通常,开发者...

    XML布局和代码混合使用控制视图

    此外,我们还可以通过代码动态创建视图,例如在循环中生成多个相似的按钮: ```java for (int i = 0; i ; i++) { Button dynamicButton = new Button(this); dynamicButton.setText("Button " + (i + 1)); // ...

    Android应用:动态创建按钮,放在现有布局中

    首先,你需要在代码中获取到当前活动(Activity)的根布局。你可以通过调用`findViewById()`方法并传入布局的ID来实现。例如,如果根布局是一个线性布局,ID为`R.id.linear_layout`,那么代码可能是这样的: ```...

    动手学Android之二——初识Activity示例代码

    当我们谈论"动手学Android之二——初识Activity示例代码"时,这通常指的是一个简单的教程,旨在帮助初学者理解如何创建并运行第一个Android应用,从而开始他们的Android开发之旅。 在Android中,Activity是负责显示...

    android动态生成控件的一个实例

    1. **创建Button对象**:在Java代码中,我们可以使用`new Button(context)`来创建一个新的Button实例。这里的`context`通常为Activity或Fragment的上下文。 2. **设置属性**:可以通过调用Button对象的各种方法来...

    动态生成控件获取值后,传对象到下一个页面

    在Android开发中,动态生成控件以及在不同页面间传递数据是常见的需求。这个DEMO主要展示了如何在Android应用中动态创建控件,并将这些控件的值通过Parcelable接口打包成对象,然后传递到下一个Activity。下面将详细...

    安卓UI布局相关-动态生成任意张图片控件.zip

    在资源中的“动态生成多个图片控件”可能是实现这个功能的Java或Kotlin源代码文件。通常,这类代码会包含以下步骤: 1. **创建ImageView对象**:使用`new ImageView(context)`来创建一个ImageView实例,其中context...

    Android-一个根据布局文件自动生成findViewById代码的androidstudio插件

    标题提到的“Android-一个根据布局文件自动生成findViewById代码的android studio插件”正是为了实现这一目的。 这个插件名为FindViewHelper,它简化了Android开发中的UI元素绑定。通过分析XML布局文件,...

    Java数独源代码(题目随机生成)

    Java数独源代码是针对初学者的一个优秀学习项目,它实现了数独游戏的完整功能,包括数独题目的随机生成。这个项目可以帮助开发者深入理解Java编程语言,特别是面向对象设计、算法实现以及游戏逻辑的构建。 数独是一...

    动态生成viewpager上的小点

    接下来,在Activity或Fragment的onCreate方法中,我们需要获取到这个布局,并根据ViewPager的页面数量动态生成小点。这里可以使用一个for循环,每次生成一个新的ImageView并添加到LinearLayout中: ```java ...

Global site tag (gtag.js) - Google Analytics