自定义可扩展列表视图子

时间:2012-03-21 13:12:20

标签: android layout expandablelistview

我有一个问题,我有一个消耗列表视图,子行是一个自定义行,其中包含textViews和Button以及一个LinearLayout,当我点击子视图中的按钮时,我想以编程方式添加EditText视图。

我在这部分没有问题,我可以在点击按钮时添加视图,但我的问题是,当我从Actionbar标签移动到另一个活动时,我添加的EditText视图消失了,我看不到即使我在上面写,我也需要一直可见

任何人都可以告诉我这是什么问题以及任何解决方法尽快解决..请

谢谢,

 @Override
public View getChildView(int groupPosition, int childPosition,
                    boolean isLastChild, View convertView,    ViewGroup parent) {
                // TODO Auto-generated method stub

                final View rowview    =super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent);


                 final EditText item_count=(EditText)rowview.findViewById(R.id.txt_count);

                Cursor child=getChild(groupPosition,childPosition);

                item_count.setText(String.valueOf(child.getInt(child.getColumnIndex("quantity"))));
            //    EditText comment=(EditText)rowview.findViewById(R.id.iman);
                //  comment.setText("Add your comment here ");



                ImageButton btn_add_count=(ImageButton)rowview.findViewById(R.id.btn_add_item);
                btn_add_count.setOnClickListener(new OnClickListener() 
                {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub

                        count=Integer.valueOf(item_count.getText().toString());
                        count=count+1;

                        item_count.setText(String.valueOf( count));
                    }
                });
//this is the button which i click to add the views 
Button btn_add_comment=(Button)rowview.findViewById(R.id.btb_add_comment);
                btn_add_comment.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub


                        LayoutInflater inflater=LayoutInflater.from(getActivity());
                        commentLayout=(LinearLayout)rowview.findViewById(R.id.comment_layout);
                        final LinearLayout rowLayout=new LinearLayout(getActivity());
                        //
                        Button remove=new Button(getActivity());
                        remove.setText("remove");
                        remove.setOnClickListener(new OnClickListener() {

                            @Override
                            public void onClick(View v) {
                                // TODO Auto-generated method stub
                            //  int index=rowLayout.getId();
                                commentLayout.removeView(rowLayout); 
                             //rowLayout.setVisibility(View.GONE);
                                Log.i("remove", "this is remove comment");
                            }
                        });
                        rowLayout.setOrientation(LinearLayout.HORIZONTAL);
                        EditText comment_text=new EditText(getActivity());
                        comment_text.setBackgroundColor(Color.WHITE);
                        comment_text.setTextColor(Color.BLACK);
                        comment_text.setWidth(400);
                        comment_text.setHeight(40);

                        rowLayout.addView(remove);
                        rowLayout.addView(comment_text);

                        commentLayout.addView(rowLayout);



                    }
                });


                return rowview;
            }       

1 个答案:

答案 0 :(得分:0)

听起来好像您没有保存活动重新创建新状态所需的已添加行的信息。使用自行开发的数据存储或savedInstanceState。