Android以编程方式在linearlayout中添加和删除文本视图

Android以编程方式在linearlayout中添加和删除文本视图,android,textview,Android,Textview,我试图以图形方式在linearlayout中添加视图(TextView)。我能够以编程方式在linearlayout中添加textview 以下是我添加textview的代码: public void setSelectedContactTextView(final ArrayList<Object> list){ //Constants.progressDialog=ProgressDialog.show(this, "", Constants.MSG_PROGES

我试图以图形方式在linearlayout中添加视图(TextView)。我能够以编程方式在linearlayout中添加textview

以下是我添加textview的代码:

public void setSelectedContactTextView(final ArrayList<Object> list){
        //Constants.progressDialog=ProgressDialog.show(this, "", Constants.MSG_PROGESSDIALOG);
        /*  new Thread(new Runnable() {

            @Override
            public void run() {*/
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                while(i<list.size()){
                    ContactBean contactBean=(ContactBean)list.get(i);
                    if(contactBean.isSelected()==true){
                        View line = new View(NewEventShowDetails.this);
                        line.setLayoutParams(new LayoutParams(1, LayoutParams.WRAP_CONTENT));
                        final TextView contactTextView=new TextView(NewEventShowDetails.this);
                        contactTextView.setText(contactBean.getEmailId().toString());
                        contactTextView.setPadding(3,3, 3, 3);
                        contactTextView.setOnClickListener(new OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Toast.makeText(NewEventShowDetails.this, contactTextView.getText(), Toast.LENGTH_SHORT).show();
                            }
                        });
                        fbContactTextLinearLayout.addView(contactTextView);
                        fbContactTextLinearLayout.addView(line);
                        count++;
                    }
                    i++;
                }
            }
        });

        /*}
        });*/
    }
public void removeAllTextViewsFromLayout(){
        final int childcount = fbContactTextLinearLayout.getChildCount();
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                for (int i=0; i < childcount; i++){
                    fbContactTextLinearLayout.removeViewInLayout(fbContactTextLinearLayout.getChildAt(i));
                }
            }
        });
    }

您的i计数器正在重置吗?根据你展示的代码,i不是一个局部变量

runOnUiThread(new Runnable() {
        @Override
        public void run() {
            while(i<list.size()){
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{

而(i你的i计数器被重置了吗?根据你显示的代码,i不是一个局部变量

runOnUiThread(new Runnable() {
        @Override
        public void run() {
            while(i<list.size()){
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{

while(我如何看待您的RemoveViewInYout(fbContactTextLinearLayout.getChildAt(i));方法代码?为什么不直接调用
fbContactTextLinearLayout.removeAllViews();
您是否只从onResume()调用setSelectedContactTextView()?删除视图后何时调用此功能?如果您只删除视图而不执行任何其他操作,如离开活动或暂停或类似操作,则不会再次调用onResume。@Neil我曾经说过它将删除所有文本视图,但在删除文本视图后,这些视图不会再次添加。@OpiateFuch抱歉,但我的onResume()每次都会被调用。你的removeViewInLayout(fbContactTextLinearLayout.getChildAt(i));方法代码呢?为什么不直接调用
fbContactTextLinearLayout.removeAllViews();
你只从onResume()调用setSelectedContactTextView()呢?删除视图后何时调用此功能?如果您只删除视图而不执行任何其他操作,如离开活动或暂停或类似操作,则不会再次调用onResume。@Neil我曾经说过它将删除所有文本视图,但在删除文本视图后,这些视图不会再次添加。@OpiateFuch抱歉,但我的onResume()每次都会打电话。