似乎我不是第一个动态创建TableLayOut的人.问题是,当我将TableRow对象添加到TableLayout时,我的android应用程序崩溃并完成了意外错误.

我想做的事?

我想用下一个项目布局创建对话框

-------------------

|Custom |____|____|

|graphic|____|____|

|view |____|____|

| |____|____|

-------------------

关闭按钮

为了做到这一点,我正在使用下一个方法.

1.创建DialogLayout类

2.创建Dialog类

public class DialogLayout extends LinearLayout

{

private CustomView m_view;

private TableLayout m_layout;

private TableRow m_row0;

private TextView m_propName;

private EditText m_propValue;

public DialogLayout(Context context)

{

super(context);

Init(context);

}

private void Init(Context context)

{

setOrientation(LinearLayout.HORIZONTAL);

m_layout = new TableLayout(context);

m_layout.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

m_layout.setStretchAllColumns(true);

m_propName= new TextView(context);

m_propName.setText("PropName:");

m_propValue = new EditText(context);

m_propValue.setText("--");

m_row0 = new TableRow(context);

m_row0.addView(m_propName);

m_row0.addView(m_propValue);

m_layout.addView(m_row0, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

m_view= new CustomView(context);

int h = (int) Math.min(m_layout.getHeight(), 600);

if (h < 600)

h = 600;

LinearLayout.LayoutParams adapt = new LayoutParams(300, h);

m_view.setLayoutParams(adapt);

addView(m_view);

addView(m_layout);

setFocusable(true);

setFocusableInTouchMode(true);

}

}

对话类:

public class Dialog

{

private Builder m_dialog = null;

private DialogLayout m_layout = null;

public Dialog(Context context)

{

m_layout = new DialogLayout(context);

m_dialog = new AlertDialog.Builder(context);

m_dialog.setTitle("My dialog");

m_dialog.setView(m_layout);

m_dialog.setNegativeButton("Close button", null);

}

public void show()

{

m_dialog.show(); // Seems to be it does not correctly calls m_dialog.show()!!!

}

}

我检查了应用程序崩溃的下一个原因

>如果我的自定义视图没问题? – 是的,没关系.它对应用程序行为没有任何影响

>如果还有其他原因? – 是的这很奇怪,但只有当我试图将m_row0放入m_layout时app才会崩溃.但是当我在评论代码行时

m_layout.addView(m_row0,新的TableLayout.

LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));

一切都开始正常,但没有桌子.

预先感谢您的任何帮助.

logcat的:

12-12 15:00:45.899: W/dalvikvm(26467): threadid=1: thread exiting with uncaught exception (group=0x40e56930)

12-12 15:00:45.909: E/AndroidRuntime(26467): FATAL EXCEPTION: main

12-12 15:00:45.909: E/AndroidRuntime(26467): java.lang.ArithmeticException: divide by zero

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.TableLayout.mutateColumnsWidth(TableLayout.java:587)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.TableLayout.shrinkAndStretchColumns(TableLayout.java:576)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.TableLayout.measureVertical(TableLayout.java:474)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.TableLayout.onMeasure(TableLayout.java:439)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.View.measure(View.java:15513)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1052)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.LinearLayout.onMeasure(LinearLayout.java:590)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.View.measure(View.java:15513)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.View.measure(View.java:15513)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.View.measure(View.java:15513)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.View.measure(View.java:15513)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.View.measure(View.java:15513)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.View.measure(View.java:15513)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

12-12 15:00:45.909: E/AndroidRuntime(26467): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2176)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.View.measure(View.java:15513)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1064)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.Choreographer.doCallbacks(Choreographer.java:562)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.Choreographer.doFrame(Choreographer.java:532)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.os.Handler.handleCallback(Handler.java:725)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.os.Handler.dispatchMessage(Handler.java:92)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.os.Looper.loop(Looper.java:137)

12-12 15:00:45.909: E/AndroidRuntime(26467): at android.app.ActivityThread.main(ActivityThread.java:5039)

12-12 15:00:45.909: E/AndroidRuntime(26467): at java.lang.reflect.Method.invokeNative(Native Method)

12-12 15:00:45.909: E/AndroidRuntime(26467): at java.lang.reflect.Method.invoke(Method.java:511)

12-12 15:00:45.909: E/AndroidRuntime(26467): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)

12-12 15:00:45.909: E/AndroidRuntime(26467): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)

12-12 15:00:45.909: E/AndroidRuntime(26467): at dalvik.system.NativeStart.main(Native Method)

解决方法:

您应该使用TableRow.LayoutParams而不是TableLayout.LayoutParams.

标签:android,tablelayout

来源: https://codeday.me/bug/20190520/1143920.html

android 动态生成tablelayout,动态tablelayout创建的android应用程序崩溃相关推荐

  1. 杰信项目第三天知识点(工作表模板+动态生成目录+动态生成重名文件+购销合同增删改查)

    1.工作表模板使用方法: //获取模板文件,路径为存放模板文件的路径 HSSFWorkbook wb = new HSSFWorkbook( new FileInputStream(rootpath+ ...

  2. Android OpenGL ES(六)创建实例应用OpenGLDemos程序框架 .

    有了前面关于Android OpenGL ES的介绍,可以开始创建示例程序OpenGLDemos. 使用Eclipse 创建一个Android项目 Project Name: OpenGLDemos ...

  3. Android socket 学习记录 之 执行new socket(ip, port)程序崩溃

    这段时间在学习Android的socket编程,我不是专做APP的,做的是bootloader.驱动.hal.framework这个线的,也就是系统搭建和功能优化设计.为了打通这整条线,为此学习了不少 ...

  4. java动态生成excel_java动态生成excel打包下载

    @SuppressWarnings("unchecked")public String batchExport() throwsDBException{ @SuppressWarn ...

  5. android zxing生成条形码,使用ZXing创建android条形码扫描应用程序

    ZXing项目提供了一个独立的条形码阅读器应用程序,-通过 Intent 机制-可以被其他希望集成条码扫描的应用程序调用. 最简单的方法是调用 ZXing SCANIntent 从你的应用程序,这样的 ...

  6. android怎样生成固定的aes密钥,关于android:如何更改AES 128的密钥数量

    本问题已经有最佳答案,请猛点这里访问. 我找到了一个android加密的源..它使用的是aes 128位加密..但是密钥的数量固定为16个字符..有人能告诉我如何根据我们的意愿更改数字密钥..我不想限 ...

  7. android表情符号使用,关于android:表情符号符号?? 在string.xml中使应用程序崩溃

    我想整合表情符号? 在我的Android应用中. 因此,我查找了utf-8符号的十六进制代码,并将以下内容添加到我的string.xml文件中: Perfect

  8. WebAPI(part10)--动态生成表格

    学习笔记,仅供参考,有错必究 文章目录 动态生成表格 动态生成表格 从本地取到数据,动态生成表格,并添加删除操作. 代码: <!DOCTYPE html> <html>< ...

  9. java 动态生成pdf 页码

    先看效果图 这里说明一下这个页码是独立的覆盖在头部上的,不是写在头部里面  线条是默认的不需要的话设置 cell.setBorder(0); 需要引用的核心包有 <dependency>& ...

  10. 【Kubernetes存储篇】StorageClass存储类动态生成PV详解

    文章目录 一.StorageClass存储类理论 二.案例:Storageclass存储类实战演示 1.搭建NFS服务端 2.搭建NFS供应商(provisioner) 3.创建StorageClas ...

最新文章

  1. 综述论文要写英文摘要吗_速成本科毕业论文初稿!!!
  2. 人工智能技术的新突破:MIT科学家发明Church AI语言
  3. 傅立叶变换、拉普拉斯变换、Z变换之间 篇一
  4. 关于java的集合类,以及HashMap中Set的用法!
  5. java gdal_Java通过jni方式调用gdal踩过的坑
  6. Seafile 1.3 发布,文件同步和协作平台
  7. [独家放送]Unity2020规划预览,可视化编程又双叒叕来了!
  8. 怎么样才显示暗=安装好了mysql_linux mysql安装
  9. git commit --amend 修改git提交记录用法详解
  10. Linux复习-vi编辑器
  11. java基本语法大全(全)_Java基本语法大全(全)
  12. 定义Employee类(1)该类包含:private成员变量name,sal,birthday,其中birthday为MyDate类的对象;(2)为每一个属性定义getter,setter方法
  13. idea彩虹括号+区域代码高亮插件
  14. ctfshow菜狗杯webshell wp
  15. 详细分析本机号码一键登录原理!建议收藏
  16. 两个各四只青蛙过河java_Java实现 LeetCode 403 青蛙过河
  17. 经济类英文期刊排行榜
  18. 算法课堂笔记01-语句频度计算
  19. 宋宝华:Linux设备与驱动的手动解绑与手动绑定
  20. Spring面试专题

热门文章

  1. Mac搜索怎样才更精准?模糊查询
  2. C++类中指针初始化注意问题
  3. pandas统计重复值次数
  4. 【车载基础软件 |ASF中间件 系列二】— 国产汽车生态平台ASF的生态框架
  5. 38岁浙大学霸Facebook总部跳楼:把工作当全部,是你丢失自我的开始
  6. 江苏省一般纳税人企业,享一般纳税人财政扶持,规避减税降负税务风险
  7. 如何计算结构体的大小(四步轻松解决)
  8. 【消息中间件】kafka技术探秘
  9. 锁定宝马X6 奔驰MLC概念车首张官图发布
  10. GitLab仓库迁移