0

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

1-我有一个按钮,每次单击它时都会生成 Params 和 TextView。我将变量设置为 textview "textnew" 和 param "lptxt"。但是,我只能控制最后生成的文本视图、字体、字体大小、删除..等。有没有设置自动 id 的方法,我可以用其他方法调用它?我尝试了 isSelected、isTouched、hasFocus 等,但没有任何效果。

2-如何将我的 TextView 设置回设置边框后的状态?假设我已经为 10dp 半径和红色的 TextView 设置了边框。但是当触摸 TextView 时,边框会更改为 1dp 半径,如可绘制/角中所述。

谢谢

这是我的代码

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

点击:

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());

触摸:

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

                        break;
                    }

顺便说一句,我正在研究 API 11

先感谢您,

4

3 回答 3

0
  1. 使用setTag你的TextView和使用findViewWithTag来获得你需要的视图。

  2. 重新启动一切ACTION_UP

于 2017-02-14T04:40:06.627 回答
0

I found a workaround to this problem:

I inflated a view on ACTION_UP, where I can change text size, color, font, and even delete it. The changes happen directly on the selected textview with problem.

Thanx guys for contributing.

Here's my code:

    case MotionEvent.ACTION_UP: {

    LayoutInflater lifirst = LayoutInflater.from(MainActivity.this);
    View lifirstpv = lifirst.inflate(R.layout.infirst, null);
    final TextView editfirst = TextView)lifirstpv.findViewById(R.id.editfirst);
    final TextView deletefirst = (TextView)lifirstpv.findViewById(R.id.deletefirst);

    pop = new PopupWindow(
lifirstpv,RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);

    pop.setOutsideTouchable(true); pop.setTouchable(true);
    deletefirst.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
    rel0.removeView(teext);
    pop.dismiss();
    return true;
                   }
          });
于 2017-03-04T18:53:44.980 回答
0

例如,您生成 5TextView

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

方法生成TextView

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

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

如果您使用相同的布局参数,则文本视图正在使用相对lptxt布局参数。textviews将是相同的位置,你只能看到最后一个

于 2017-02-14T04:43:02.563 回答