首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在android上添加行

如何在android上添加行
EN

Stack Overflow用户
提问于 2013-11-11 12:50:54
回答 2查看 77关注 0票数 0

我按照here的教程来添加行,但是我遇到了这个问题,当我试图添加视图时,我遇到了问题……这是我的代码:

代码语言:javascript
运行
复制
add_sumber_pp=(ImageView)findViewById(R.id.add_sumber_pp);

add_sumber_pp.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
        TableLayout tablelayout_penghasilan_pp=(TableLayout)findViewById(R.id.tablelayout_penghasilan_pp);
        TableRow tabel_penghasilan_pp=(TableRow)findViewById(R.id.tabel_penghasilan_pp);
        counter++;
        TextView adapter_no_dana=(TextView)findViewById(R.id.adapter_no_dana);
        TextView adapter_jenis_dana=(TextView)findViewById(R.id.adapter_jenis_dana);
        TextView adapter_jelaskan_dana=(TextView)findViewById(R.id.adapter_jelaskan_dana);
                ImageView add_pp=(ImageView)findViewById(R.id.add_pp);
                ImageView remove_pp=(ImageView)findViewById(R.id.remove_pp);
                adapter_no_dana.setText("anak "+counter);
                if(v != null) 
                { 
                     ViewGroup parentViewGroup = (ViewGroup) v.getParent();
                        if (parentViewGroup != null) {
                            parentViewGroup.removeAllViews();
                        }

                }
                tabel_penghasilan_pp.addView(adapter_no_dana);
                tabel_penghasilan_pp.addView(adapter_jenis_dana);
                tabel_penghasilan_pp.addView(adapter_jelaskan_dana);
                tabel_penghasilan_pp.addView(add_pp);
                tabel_penghasilan_pp.addView(remove_pp);

            }
        });

这是我的logcat:

代码语言:javascript
运行
复制
11-11 11:39:29.944: E/AndroidRuntime(19016): FATAL EXCEPTION: main
11-11 11:39:29.944: E/AndroidRuntime(19016): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
11-11 11:39:29.944: E/AndroidRuntime(19016):    at android.view.ViewGroup.addViewInner(ViewGroup.java:3389)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at android.view.ViewGroup.addView(ViewGroup.java:3260)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at android.view.ViewGroup.addView(ViewGroup.java:3205)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at android.view.ViewGroup.addView(ViewGroup.java:3181)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at id.co.ajsmsig.formspaj.Pemegang_polis$6.onClick(Pemegang_polis.java:308)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at android.view.View.performClick(View.java:4222)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at android.view.View$PerformClick.run(View.java:17337)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at android.os.Handler.handleCallback(Handler.java:615)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at android.os.Looper.loop(Looper.java:137)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at android.app.ActivityThread.main(ActivityThread.java:4895)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at java.lang.reflect.Method.invokeNative(Native Method)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at java.lang.reflect.Method.invoke(Method.java:511)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
11-11 11:39:29.944: E/AndroidRuntime(19016):    at dalvik.system.NativeStart.main(Native Method)

这是我的布局:

我不知道哪里是我的错..我希望有人能帮我解决我的问题。

EN

回答 2

Stack Overflow用户

发布于 2013-11-11 12:53:33

打扰一下,这些观点

代码语言:javascript
运行
复制
 TextView adapter_no_dana=(TextView)findViewById(R.id.adapter_no_dana);
        TextView adapter_jenis_dana=(TextView)findViewById(R.id.adapter_jenis_dana);
        TextView adapter_jelaskan_dana=(TextView)findViewById(R.id.adapter_jelaskan_dana);

是另一个布局/父级的子节点,这就是问题所在。

如果您想要动态添加它们,则需要进行如下更改

代码语言:javascript
运行
复制
TextView adapter_no_dana=new TestView(context);
        TextView adapter_jenis_dana=new TestView(context);
        TextView adapter_jelaskan_dana=new TestView(context);
票数 0
EN

Stack Overflow用户

发布于 2013-11-11 12:58:07

在更新视图之前添加以下行

代码语言:javascript
运行
复制
tablelayout_penghasilan_pp.removeAllViews();

是,如果要动态添加,则应在代码中对其进行更新

代码语言:javascript
运行
复制
TextView adapter_no_dana=new TestView(context);
TextView adapter_jenis_dana=new TestView(context);
TextView adapter_jelaskan_dana=new TestView(context);

希望能对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19899045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档