我开发应用程序以将动态数据添加到多个表视图.结构如下.

我在onPostExecute中的代码是:

protected void onPostExecute(List results){

int ind,i = 0;

ScrollView sv=null;

TableLayout tl=null;

TableRow tr = null;

int mjsonlength=results.size();

if(results!=null){

TableLayout indextl=(TableLayout)findViewById(R.id.indextablelayout);

TableRow indextr=new TableRow(SubProducts.this);

//indext1.moveToFirst();

LinearLayout llt=(LinearLayout)findViewById(R.id.alltablell);

//for(int f=0;f

for( ind=0;ind

{

TextView indextv=new TextView(SubProducts.this);

indextv.setBackgroundResource(R.drawable.greenbg);

indextv.setHeight(25);

indextv.setWidth(50);

indextv.setId(6);

indextv.setTextColor(Color.WHITE);

indextv.setText(indextitle.get(ind));

indextv.setPadding(20,10,6,3);

indextr.addView(indextv);

indextl.addView(indextr,6);

sv=new ScrollView(SubProducts.this);

tl=new TableLayout(SubProducts.this);

for( i=0;i

tr=new TableRow(SubProducts.this);

if(ind==i) {

RelativeLayout rl=new RelativeLayout(SubProducts.this);

Resources res = getResources(); //resource handle

rl.setBackgroundResource(R.drawable.prd_box);

RelativeLayout.LayoutParams newParams1 = new RelativeLayout.LayoutParams(

RelativeLayout.LayoutParams.WRAP_CONTENT,

RelativeLayout.LayoutParams.WRAP_CONTENT);

image=new ImageView(SubProducts.this);

image.setLayoutParams(newParams1);

image.setId(1);

image.setImageBitmap(bmp);

image.setPadding(5, 20, 5, 5);

rl.addView(image,1);

RelativeLayout.LayoutParams lprams = new RelativeLayout.LayoutParams(

RelativeLayout.LayoutParams.WRAP_CONTENT,

RelativeLayout.LayoutParams.WRAP_CONTENT);

lprams.addRule(RelativeLayout.RIGHT_OF, 1);

TextView tv1=new TextView(SubProducts.this);

Spanned marked_up = Html.fromHtml(description.get(i));

tv1.setText((marked_up.toString()).substring(1, 170).replaceAll(" ",""));

tv1.setLayoutParams(lprams);

tv1.setId(2);

tv1.setHeight(150);

tv1.setWidth(130);

tv1.setPadding(20, 10, 0, 10);

rl.addView(tv1,2);

RelativeLayout.LayoutParams newParams = new RelativeLayout.LayoutParams(

RelativeLayout.LayoutParams.WRAP_CONTENT,

RelativeLayout.LayoutParams.WRAP_CONTENT);

newParams.addRule(RelativeLayout.BELOW, 2);

TextView tv=new TextView(SubProducts.this);

tv.setText(productname.get(i));

tv.setLayoutParams(newParams);

tv.setTextColor(Color.WHITE);

tv.setId(3);

tv.setPadding(10, 0, 0, 10);

rl.addView(tv,3);

tr.addView(rl);

tr.setPadding(5, 10, 5, 10);

}

tl.addView(tr);

}

sv.addView(tl);

llt.addView(sv);

}

}

}

我得到的错误如下:

03-16 06:27:07.452: E/AndroidRuntime(7233): FATAL EXCEPTION: main

03-16 06:27:07.452: E/AndroidRuntime(7233): java.lang.IllegalStateException: The 03-16 06:27:07.452: E/AndroidRuntime(7233): FATAL EXCEPTION: main

03-16 06:27:07.452: E/AndroidRuntime(7233): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.view.ViewGroup.addViewInner(ViewGroup.java:3339)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.view.ViewGroup.addView(ViewGroup.java:3210)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.widget.TableLayout.addView(TableLayout.java:429)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.view.ViewGroup.addView(ViewGroup.java:3155)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.widget.TableLayout.addView(TableLayout.java:411)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.view.ViewGroup.addView(ViewGroup.java:3131)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.widget.TableLayout.addView(TableLayout.java:402)

03-16 06:27:07.452: E/AndroidRuntime(7233): at com.example.nutritionplusapp.SubProducts$LongRunningGetIO1.onPostExecute(SubProducts.java:227)

03-16 06:27:07.452: E/AndroidRuntime(7233): at com.example.nutritionplusapp.SubProducts$LongRunningGetIO1.onPostExecute(SubProducts.java:1)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.os.AsyncTask.finish(AsyncTask.java:631)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.os.AsyncTask.access$600(AsyncTask.java:177)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.os.Handler.dispatchMessage(Handler.java:99)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.os.Looper.loop(Looper.java:137)

03-16 06:27:07.452: E/AndroidRuntime(7233): at android.app.ActivityThread.main(ActivityThread.java:5041)

03-16 06:27:07.452: E/AndroidRuntime(7233): at java.lang.reflect.Method.invokeNative(Native Method)

03-16 06:27:07.452: E/AndroidRuntime(7233): at java.lang.reflect.Method.invoke(Method.java:511)

03-16 06:27:07.452: E/AndroidRuntime(7233): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)

03-16 06:27:07.452: E/AndroidRuntime(7233): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)

03-16 06:27:07.452: E/AndroidRuntime(7233): at dalvik.system.NativeStart.main(Native Method)

03-16 06:32:07.586: I/Process(7233): Sending signal. PID: 7233 SIG: 9

03-16 06:32:08.522: E/Trace(7355): error opening trace file: No such file or directory (2)

循环变量值对于两个循环都应该相同Inorder获取相应产品的子产品.我正在与上述错误作斗争.任何有想法的人.Plz建议我适当的解决方案.谢谢提前.

编辑:

ArrayList productname=new ArrayList();

ArrayList description=new ArrayList();

ArrayList indextitle=new ArrayList();

ArrayList mStrings = new ArrayList();

在doINBackground下:

JSONObject json = array.getJSONObject(i);

manJson = json.getJSONObject("product");

mStrings.add(manJson.getString("productimage"));

productname.add(manJson.getString("productname"));

indextitle.add(manJson.getString("subcategoryid"));

description.add(manJson.getString("description"));

解决方法:

好的第二个潜在问题也是:

indextl.addView(indextr);

indextr会在每次循环迭代中添加,但它是相同的视图.您只能将一次视图添加到层​​次结构中.您可能希望每个循环迭代都有一个新实例.我不能肯定地说,但这可能是问题所在.

标签:android,android-layout

来源: https://codeday.me/bug/20190711/1436529.html

Android替换view父节点,android – issue:指定的子节点已经有父节点.您必须首先在孩子的父母上调用removeView()...相关推荐

  1. Android替换view父节点,android – issue:指定的子节点已经有父节点.您必须首先在孩子的父母上调用removeView()...

    我开发应用程序以将动态数据添加到多个表视图.结构如下. 我在onPostExecute中的代码是: protected void onPostExecute(List results){ int in ...

  2. android自定义view生命周期,android基础之自定义view

    一.Custom View 1.view的继承关系 view继承关系.png 2.Android 如何绘制试图层次 当activity获取焦点时,它必须提供layout层次的根节点,然后android ...

  3. android自定义view实现原理,android随笔之自定义View基本原理

    前言: 在日常的Android开发中会经常和控件打交道,有时Android提供的控件未必能满足业务的需求,这个时候就需要我们实现自定义一些控件,今天先大致了解一下自定义控件的要求和实现的基本原理. 自 ...

  4. android 自定义view 硬件加速,Android自定义View(八) -- 硬件加速

    Android自定义View(八) – 硬件加速 今天学习自定义View部分的最有一篇:硬件加速因为无法录制GIF,所以本篇内容基本为原博 本文计划根据HenCoder系列文章进行学习,所以代码风格及 ...

  5. android 自定义view画表格,Android自定义View实现课程表表格

    自己闲下来时间写的一个课表控件,使用的自定义LinearLayout,里面View都是用代码实现的,最终效果如下图,写的可能有问题希望多多指点 创建一个自定义LinearLayout 控件用来装载课程 ...

  6. android动画view上移,在Android开发中使用View制作一个引导动画

    在Android开发中使用View制作一个引导动画 发布时间:2020-11-20 16:46:16 来源:亿速云 阅读:98 作者:Leah 这篇文章将为大家详细讲解有关在Android开发中使用V ...

  7. android 自定义view 动画效果,Android自定义view实现阻尼效果的加载动画

    效果: 需要知识: 1. 二次贝塞尔曲线 2. 动画知识 3. 基础自定义view知识 先来解释下什么叫阻尼运动 阻尼振动是指,由于振动系统受到摩擦和介质阻力或其他能耗而使振幅随时间逐渐衰减的振动,又 ...

  8. android 自定义view局部刷新,Android 优化之局部刷新

    RecyclerView 局部刷新 相信现在已经很少人不用 RecyclerView 了,如果只有一个 item 的数据源改变的时候,大家都会用 notifyItemChanged(int posit ...

  9. android view父级隐藏,Android指定的子级已经有父级。必须先对子级的父级调用removeView()...

    在我的应用中,我必须经常在两种布局之间切换.错误在下面发布的布局中发生. 第一次调用布局时,没有发生任何错误,一切都很好.然后,当我调用不同的布局(空白),然后再次调用我的布局时,出现以下错误: &g ...

最新文章

  1. HTML5 Audio/Video 标签,属性,方法,事件汇总 (转)
  2. 【青海】2021年下半年软考报考时间及通知
  3. Qt智能指针--QSharedPointer
  4. 【整理】使用云计算服务面临的几个安全问题
  5. SAP License:解释一下目标成本、计划成本和标准成本的区别
  6. 对多线程程序,单核cpu与多核cpu如何工作相关的探讨
  7. SQL:postgresql中拼接字符串
  8. 【语音隐写】基于matlab GUI DCT+DWT音频数字水印嵌入提取【含Matlab源码 836期】
  9. 【课程学习】武汉理工大学·高性能计算机网络(学堂在线)学习笔记
  10. 聊聊那些知识管理软件
  11. Scene窗口—Scene视图导航
  12. 计算机多媒体中的媒体种类,多媒体计算机中的媒体信息是指什么
  13. 得物 × StarRocks:潮流网购社区的极速 OLAP 实践
  14. STARK Low Degree Testing——FRI
  15. 2019 CCF-CCSP-苏州之旅
  16. 【新技研】高通全新骁龙Krait 300/400处理器架构浅析
  17. Vue移动端----页面旋转进入特效功能实现
  18. 5、求方程的根的两种方法
  19. 图像处理——KL变换原理
  20. Java 基础——赋值语句的返回值

热门文章

  1. ubuntu 下 Graphviz 的安装及神经网络的绘图
  2. Tricks(四十三)—— 逆序的方式访问一个 list
  3. Python 三目运算符(三分支)
  4. 机器学习基础(四十一)—— KNN
  5. 机器学习基础(三十) —— 线性回归、正则化(regularized)线性回归、局部加权线性回归(LWLR)
  6. php程序员述职材料_php程序员述职报告(精选多篇)
  7. 学习pythonweb开发_Python学习--20 Web开发
  8. python从入门到精通-Python从入门到精通
  9. 从零开始学习python编程-新书推荐《Python3.7从零开始学》来了
  10. python能学到什么-学习python三个月能学到什么?