如何控制以编程方式生成的TextViews

时间:2017-02-14 03:14:51

标签: android textview generated programmatically

如果有人能为我提供解决方案,感谢您的帮助。我有两个问题:

1-我有一个按钮,每次单击它时都会生成Params和TextView。我将变量设置为textview“textnew”和param“lptxt”。但是,我只能控制最后生成的textview,字体,字体大小,remove..etc。有没有设置自动ID的方法,我可以在其他方法中回忆起来?我尝试了isSelected,isTouched,hasFocus和其他人,但没有任何效果。

2-如何将TextView设置回设置边框后的状态?假设我已将边框设置为10dp半径的TextView和红色。但是当触摸TextView时,边框会变为1dp半径,如drawable / corner中所述。

谢谢

这是我的代码

RelativeLayout rel0 = (RelativeLayout) findViewById(R.id.rel0);

的OnClick:

textnew = new TextView(MainActivity.this);
    lptxt = new RelativeLayout.LayoutParams(
                                    RelativeLayout.LayoutParams.WRAP_CONTENT,
                                    RelativeLayout.LayoutParams.WRAP_CONTENT);
                            lptxt.addRule((RelativeLayout.CENTER_HORIZONTAL));
                            lptxt.addRule((RelativeLayout.CENTER_VERTICAL));
                            lptxt.addRule((RelativeLayout.CENTER_IN_PARENT));
                            textnew.setLayoutParams(lptxt);
                            rel0.addView(textnew);
                            rel0.bringChildToFront(textnew);
                            rel0.bringToFront();
                            textnew.setText(edittextdialog.getText().toString());

OnTouch:

case MotionEvent.ACTION_DOWN: {
                        textnew.setBackgroundResource(R.drawable.borders);
                        textnew.isSelected();

                        break;
                    }

BTW我正在研究API 11

提前谢谢你,

3 个答案:

答案 0 :(得分:0)

  1. setTag上使用TextView并使用findViewWithTag获取您需要的视图。

  2. 重置ACTION_UP

  3. 上的所有内容

答案 1 :(得分:0)

例如,您生成5 List<TextView> list = new ArrayList<TextView>(); for(int i=0;i<5;i++){ TextView textView = generateTextView(); list.add(textView); rel0.addView(textView); }

public TextView generateTextView(){
    TextView textnew = new TextView(MainActivity.this);
    ...
    return textnew;
}

该方法生成TextView

lptxt

然后您可以控制列表中的文本视图

如果使用相同的 LinearLayout lineFree = (LinearLayout) findViewById(R.id.view_fee); lineFree.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .add(R.id.container, new Dashboard()) .commit(); DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); } }); 布局框架,textview正在使用relativelayoutparams。 textview将是相同的位置,你只能看到最后一个

答案 2 :(得分:0)

我找到了解决此问题的方法:

我在ACTION_UP上夸大了一个视图,我可以在其中更改文本大小,颜色,字体,甚至删除它。这些更改会直接在所选的textview上发生问题。

Thanx家伙的贡献。

这是我的代码:

partA