Как управлять программно сгенерированными TextViews

Я ценю вашу помощь, если кто-то может предоставить мне решение. У меня два вопроса:

1- У меня есть кнопка, которая генерирует Params и TextView каждый раз, когда я нажимаю на нее. Я устанавливаю переменные для textview "textnew" и параметра "lptxt". Однако я могу управлять только последним сгенерированным текстом, шрифтом, размером шрифта, удалением... и т. Д. Есть ли способ установить автоматический идентификатор, и я могу вспомнить его в других методах? Я пробовал isSelected, isTouched, hasFocus и другие, но ничего не получалось.

2- Как я могу вернуть свой TextView обратно, как это было после установки границ? Допустим, я установил границы для TextView с радиусом 10dp и красным цветом. но при касании TextView границы изменяются на радиус 1 дп, как указано в drawable/corners.

Спасибо

Вот мой код

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

OnTouch:

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

                        break;
                    }

Кстати я работаю над API 11

Заранее спасибо,

3 ответа

Решение

Я нашел решение этой проблемы:

Я раздул вид на ACTION_UP, где я могу изменить размер текста, цвет, шрифт и даже удалить его. Изменения происходят непосредственно в выбранном текстовом представлении с проблемой.

Спасибо, ребята, за участие.

Вот мой код:

    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;
                   }
          });
  1. использование setTag на ваше TextView и использовать findViewWithTag чтобы получить нужный вам вид.

  2. сбросить все обратно ACTION_UP

Например, вы генерируете 5 TextView

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;
}

тогда вы можете контролировать текстовые представления в списке

textview использует относительные layoutparams, если вы используете тот же lptxt layoutparams. текстовые представления будут в той же позиции, вы можете увидеть только последний

Другие вопросы по тегам