以编程方式在onClick布局之间来回移动添加TextView

时间:2016-03-10 00:17:28

标签: android layout textview

我有这个FlowLayout,我有一组TextView,我以编程方式构建。获取想要的名称后,我为布局中的每个名称创建一个TextView。 我想做什么,如果我点击TextView,我想把它移到另一个布局。我设法做到了,但我也想把它移回去。我也可以这样做,直到我编程,但我不能把它编程为无限循环。

这是一段代码,可以让你更好地理解我正在谈论的内容。

TextView tv = new TextView(new ContextThemeWrapper(getActivity(), R.style.FlowLayoutTextView));
        tv.setText("Test");
        tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TextView tvSelected = new TextView(new ContextThemeWrapper(getActivity(), R.style.FlowLayoutTextView));
                tvSelected.setText(tv.getText().toString());
                tvSelected.setLayoutParams(params);
                tv.setVisibility(View.GONE);
                filteredLayout.addView(tvSelected);
            }
        });
        unfilteredLayout.addView(tv);

是否有可能使其有效?感谢。

LE:正如您在onClickListener的{​​{1}}事件中看到的那样,我创建另一个TextView我添加到其他布局中,将其移回我还可以添加一个TextViewonClickListener事件,但这不是解决方案。

1 个答案:

答案 0 :(得分:1)

请尝试以下操作:

boolean isInFilterLayout = false; //Class variable
TextView tv = new TextView(new ContextThemeWrapper(getActivity(),    R.style.FlowLayoutTextView));
    tv.setText("Test");
    tv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(isInFilterLayout){
               filteredLayout.remove(tv);
               unfilteredLayout.addView(tv);
               isInFilterLayout = false;
            }else{
               unfilteredLayout.remove(tv);
               filteredLayout.addView(tv);
               isInFilterLayout = true;
            }

        }
    });
    unfilteredLayout.addView(tv);