- 浏览: 323164 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (228)
- ArcGis (4)
- UI设计 (32)
- SQLite (7)
- ListView (12)
- Handler_Thread (6)
- XML (5)
- Menu (7)
- TabHost (6)
- Inflater (2)
- Activity (5)
- SDCard (3)
- Dialog (7)
- Spinner (3)
- 设备信息 (2)
- 资源文件 (7)
- 多媒体 (7)
- 图片浏览 (5)
- 工具的使用 (3)
- Animation动画 (7)
- GIS (14)
- 软件发布 (4)
- GPS (2)
- 手机Feature开发 (6)
- 加密解密 (1)
- Time (2)
- JWeb (5)
- SQL (2)
- PhoneGap (3)
- JavaScript (3)
- Object-C入门 (7)
- Oracle (1)
- AutoCompleteTextView (1)
- APN (1)
- IOS开发 (12)
- 数据库工具 (3)
- UITableView (0)
- Arcgis for iOS (1)
最新评论
-
waterM:
...
DBVis 连接数据库配置 -
航空母舰:
上源码吧,差资源,都跑不起来!
ListView_split 分割 -
wade200:
学习了
启动另一个Activity并返回结果(附源码) -
AndLi:
里面的坐标被我写死了啊,你注释掉就可以了
GPS定位 -
kunlinchen2010:
求指教,QQ:446482624
GPS定位
核心思路:ScrollView+LinearLayout
为什么不采用自定义Listview:
存在一些暂时未解决的问题,比较麻烦:
1.屏幕内容滚动时会调用ListView的Adapter的getView()重新产生View,这就要求及时保存EditText中的数据,不然会丢失,使用了Listener监听EditText的TextChange,但是发现Listener经常不被调用,跟踪发现在getView()中创建的Edittext和ListView中用来显示的EditText句柄不一样 。
2.再次就是当软键盘弹出后,焦点从当前输入的EditText丢失,移动了第一个EditText上,屏幕直接来个大滚屏。。。根本没法使用。
核心代码:
// 代码生成控件方法 private LinearLayout newView(String category, String format, int id) { LinearLayout linearLayout = new LinearLayout(this); linearLayout.setLayoutParams(new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); linearLayout.setOrientation(LinearLayout.HORIZONTAL); linearLayout.setGravity(Gravity.CENTER); // 类别 TextView category_txt = new TextView(this);// 创建TextextViewiew // category_txt.setPadding(10, 0, 0, 0); category_txt.setLayoutParams(new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1)); category_txt.setText(category); // 设置TextextViewiew显示的内容 // category_txt.setWidth(100); category_txt.setSingleLine(); category_txt.setTextSize(17); category_txt.setGravity(Gravity.CENTER); linearLayout.addView(category_txt);// 将textView添加到线性布局中 // 规格 TextView format_txt = new TextView(this);// 创建TextextViewiew // format_txt.setPadding(10, 0, 0, 0); format_txt.setLayoutParams(new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1)); format_txt.setText(format); // 设置TextextViewiew显示的内容 format_txt.setTextSize(17); format_txt.setGravity(Gravity.CENTER); // format_txt.setWidth(50); linearLayout.addView(format_txt);// 将textView添加到线性布局中 // 价格 EditText price_editText = new EditText(this); // price_editText.setPadding(10, 0, 0, 0); price_editText.setLayoutParams(new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1)); price_editText.setGravity(Gravity.LEFT); price_editText.setHeight(10); price_editText.setWidth(10); // price_editText.setWidth(80); price_editText.setSingleLine(); price_editText.setTextSize(17); // price_editText.setText(String.valueOf(id));// 设置测试价格数据 // price_editText.setInputType(0); linearLayout.addView(price_editText);// 将textView添加到线性布局中 return linearLayout; }
private LinearLayout newView(String category, String format, int id) { LinearLayout linearLayout = new LinearLayout(this); // linearLayout.setId(id); linearLayout.setLayoutParams(params_wrapcontent); linearLayout.setOrientation(LinearLayout.HORIZONTAL); linearLayout.setGravity(Gravity.CENTER); // 类别 TextView category_txt = new TextView(this);// 创建TextextViewiew category_txt.setPadding(10, 0, 0, 0); category_txt.setLayoutParams(params_wrapcontent); category_txt.setText(category); // 设置TextextViewiew显示的内容 category_txt.setWidth(100); category_txt.setSingleLine(); linearLayout.addView(category_txt);// 将textView添加到线性布局中 // 规格 TextView format_txt = new TextView(this);// 创建TextextViewiew format_txt.setPadding(10, 0, 0, 0); format_txt.setLayoutParams(params_wrapcontent); format_txt.setText(format); // 设置TextextViewiew显示的内容 format_txt.setWidth(50); linearLayout.addView(format_txt);// 将textView添加到线性布局中 // 价格 EditText price_editText = new EditText(this); price_editText.setId(id); price_editText.setPadding(10, 0, 0, 0); price_editText.setLayoutParams(params_wrapcontent); price_editText.setWidth(80); price_editText.setSingleLine(); price_editText.setText(String.valueOf(id)); // price_editText.setText("500ml"); // 设置TextextViewiew显示的内容 linearLayout.addView(price_editText);// 将textView添加到线性布局中 return linearLayout; }
通过InFlate方式:
// 代码生成控件方法 private LinearLayout newView(String category, String format, int id) { LayoutInflater inflater = LayoutInflater.from(ReportPrice.this);// 渲染器 LinearLayout view = (LinearLayout)inflater.inflate(R.layout.reportprice_item, null); TextView variety_text = (TextView) view.findViewById(R.id.variety_text); variety_text.setText(category); // 设置TextextViewiew显示的内容 TextView format_text = (TextView) view.findViewById(R.id.format_text); format_text.setText(format); EditText price_editText = (EditText) view.findViewById(R.id.price_et); price_editText.setText(String.valueOf(id)); }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_gravity="center" android:layout_height="wrap_content"> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/variety_text" android:textSize="17sp" android:gravity="center" android:layout_gravity="center" android:layout_weight="1" /> <TextView android:layout_height="fill_parent" android:id="@+id/format_text" android:layout_gravity="center" android:textSize="17sp" android:gravity="center" android:layout_weight="1" android:layout_width="fill_parent" /> <EditText android:layout_height="wrap_content" android:inputType="numberDecimal" android:background="@drawable/username_bg" android:layout_width="fill_parent" android:id="@+id/price_et" android:layout_gravity="center" android:textSize="15dp" android:maxWidth="50dp" android:maxLength="10" android:gravity="center" android:layout_weight="1" /> </LinearLayout>
// 通过设置ID获取EditText的值 // for (int i = 0; i < studentModels.size(); i++) { // EditText editText = (EditText) linearLayout // .findViewById(i); // Map<String, Object> map = new HashMap<String, // Object>(); // map.put("price", editText.getText().toString()); // price_list.add(map); // studentModels.get(i).setSgrade(editText.getText().toString()); // System.out.println(studentModels.get(i).getString()); // } // 通过getChildAt for (int i = 0; i < listLayouts.size(); i++) { LinearLayout llLayout = (LinearLayout) linearLayout .getChildAt(i); EditText editText = (EditText) llLayout .getChildAt(2); studentModels.get(i).setSgrade( editText.getText().toString()); System.out .println(studentModels.get(i).getString()); }
发表评论
-
日期编辑框
2012-03-11 13:21 867<EditText ... -
AutoCompleteText
2012-02-28 09:23 1253ArrayAdapter<String> a ... -
TextView 为空判别
2012-02-27 22:24 1291String user = username ... -
播放器主界面设计
2012-01-03 16:23 1191<?xml version="1.0&q ... -
自定义加载中和加载失败滚动条
2011-12-27 22:04 766111111111111111 -
MyApplication的配置:否则缓存为空
2011-12-26 23:58 1035<application ... -
拖动界面设计参考
2011-12-26 16:44 1098111111111111111111111111 -
设置界面设计
2011-12-25 21:45 1288如何获得用户名的值呢: // 获得配置参数:用户名 fin ... -
天天动听UI——主界面
2011-12-24 20:13 86311111111111111111111111111111 ... -
SeekBar 样式设置
2011-12-12 16:51 11325UI参考 &l ... -
地图设计参考界面
2011-12-07 16:53 7697777777777777777777777777777777 ... -
录音界面设计参考
2011-12-06 21:25 9751111111111111111111111111111111 ... -
左 中 右 布局(样式走样的问题)
2011-12-06 09:46 1267注意:使用系统自带的checkbox会导致样式走样,如下 ... -
动态生成UI 数据列表项(处理数据上报)2 分类显示
2011-10-19 23:43 853分类显示 -
webview 类似浏览器
2011-10-13 07:50 689package com.lilin.browser; ... -
WebView 网络视图
2011-10-13 07:50 946public class Main extends Activ ... -
网格布局 TableLayout
2011-10-12 08:00 863<?xml version="1.0&q ... -
帧布局 FrameLayout
2011-10-13 07:50 1053<?xml version="1.0&q ... -
进度条大全
2011-10-11 07:11 9321.对话框进度条 public class Mai ... -
绝对布局 AbsoluteLayout
2011-10-11 07:12 916<?xml version="1.0" ...
相关推荐
5. **处理数据**:在组件内部,你需要处理JSON数据的增删改查,并同步到UI上。 6. **样式定制**:根据需求,可以使用CSS预处理器(如Sass或Less)对生成的UI进行样式定制。 7. **交互逻辑**:添加事件监听器以响应...
在Qt框架中,多线程技术是实现高效并发处理的关键,尤其在数据处理和用户界面(UI)更新方面。这个实例“qt多线程实例-数据处理和UI界面显示”很可能是为了展示如何在不阻塞UI的情况下进行繁重的数据处理任务。 在...
在Vue.js框架中与Element UI组件库结合实现动态表单生成以及表单验证是一个相当实用的技术应用场景。本文主要阐述了如何使用Vue.js和Element UI来实现表单的动态生成,并为这些动态生成的表单添加了验证功能。 知识...
"使用easyui表格数据动态生成饼图"的主题涉及到前端开发中的几个关键点:EasyUI框架、数据处理以及JavaScript图表库ECharts。下面我们将深入探讨这些知识点。 首先,EasyUI是一个基于jQuery的UI库,它提供了一系列...
前端接收到数据后,可以使用模板引擎(如EJS、Handlebars)或组件库(如Element UI、Ant Design)的列表渲染功能,动态生成菜单HTML。 此外,考虑到性能和用户体验,通常会采用缓存策略来提高菜单加载速度。例如,...
在IT行业中,动态生成菜单是一项常见的需求,尤其是在开发Web应用或者桌面软件时。这个实例——"根据表中数据动态生成菜单",旨在教你如何利用数据库中的信息来构建灵活且可扩展的菜单系统。动态生成菜单的优势在于...
LigerUI是一款强大的JavaScript ...总的来说,LigerUI的Grid组件结合Java的JSON数据处理,能高效地展示和管理后台数据,提供用户友好的交互体验。在项目中灵活运用这些技术,能够极大地提升前端应用的性能和用户体验。
在动态生成界面的场景下,开发者可能需要在`MainWindow.xaml.cs`或`Window1.xaml.cs`中编写代码,根据需要动态创建并添加UI元素,同时利用事件绑定和数据绑定来实现交互逻辑。 总结来说,WPF动态生成界面的关键在于...
JSON格式的数据结构一般包括字段名和对应的值,使得表格能够正确显示和处理数据。 `editable.jsp`文件可能是一个Java服务器页面,它负责处理与`edatagrid`交互的服务器端逻辑。例如,接收用户的添加、编辑或删除...
数据字典是系统设计阶段的关键组成部分,它记录了系统中所有数据的详细信息,包括数据项、数据结构、数据流、数据存储和处理过程。数据字典的作用在于提供清晰的数据描述,帮助开发者理解系统中的数据流动和处理方式...
Unity UGUI动态生成N个Item自动排列是Unity...总的来说,Unity UGUI动态生成N个Item自动排列涉及到了UI设计、数据处理、性能优化等多个方面,通过合理运用Unity提供的工具和技巧,可以构建出高效、易维护的用户界面。
4. **ItemsControl**:`ItemsControl` 是一个非常有用的类,它可以动态显示一个集合中的所有项,配合`ItemTemplate`可以实现动态控件列表。 ### 示例代码 ```csharp // 动态创建Button Button myButton = new ...
// 这里可以根据实际需求处理数据的增删 // ... // 对右侧列表进行排序 this.sourceData.sort((a, b) => { if (a.name > b.name) { return 1; } if (a.name ) { return -1; } return 0; // 当名字相同时...
在介绍Vue Element-UI Table组件的动态生成表头和数据、修改单元格格式以及父子组件通信的过程中,涉及到了Vue框架的诸多核心知识点。以下将详细解释这些知识点。 首先,Vue是一种构建用户界面的渐进式框架。它的...
在SwiftUI中,我们经常需要标识特定的数据项,这可能涉及到在列表或集合中高亮显示某个元素。这可以通过使用`@State`或`@Binding`属性包装器实现,它们允许你在视图之间传递和管理数据。例如,你可以创建一个变量来...
在IT领域,动态生成波形图是一项常见的任务,特别是在数据分析、信号处理以及嵌入式系统监控等场景。这里,我们主要关注的是如何通过程序来实现这个功能,以及如何结合串口接收数据来实时更新波形图。让我们深入探讨...
在Android开发中,动态生成布局是一项常见的需求,特别是在创建复杂且可自定义的用户界面时。动态布局生成允许开发者在程序运行时根据需要创建、修改或删除视图元素,而不是在XML布局文件中预先静态定义。这样的灵活...
标题中的“vue+element-ui动态生成多级表头的方法”是指在Vue.js应用程序中使用Element-UI库来创建一个能够根据数据动态展示多级表头的表格组件。Element-UI是一个流行的前端UI框架,它提供了丰富的组件库,适用于...
在IT领域,动态生成菜单是一项常见的需求,尤其是在开发复杂的应用程序时。动态菜单可以根据用户的权限、操作环境或者应用状态自动生成,提供个性化的用户界面。本示例将深入讲解如何实现一个动态生成菜单的组件,并...
Adapter通常需要重写`getView()`方法,根据数据生成并设置每个列表项的View。同时,为了优化用户体验,我们还需要处理加载更多和下拉刷新的功能,这通常可以通过集成SwipeRefreshLayout和LoadMoreView来实现。 此外...