Как получить дочерние позиции динамически добавленного текста редактирования в линейном формате? - PullRequest
0 голосов
/ 19 ноября 2018

Здесь я использовал список с повторяющейся строкой. Я собираюсь запустить цикл, сказав, что если элемент "1", то тип ввода edittext должен быть числом, если его "4" обычный edittext. Теперь мой вопроскак получить идентификатор в событии редактирования текста onclick. Приведенный ниже код работает до нажатия кнопки мыши.

        list.add("1");
        list.add("1");
        list.add("4");
        list.add("4");
        for(int i=0;i<list.size();i++){
            String str=list.get(i);
            editText1=new EditText(Second.this);
            editText1.setId(i);
            if(str.equals("1")){


                editText1.setInputType(InputType.TYPE_CLASS_NUMBER);
                linearLayout.addView(editText1);



            }
            else if(str.equals("4")){
                linearLayout.addView(editText1);
                }
          linearLayout.addView(txt);
        }


        int position=linearLayout .getChildCount();
        Log.d("linearLayout","count"+position);
    editText1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        int currentViewId =view.getId();
        Log.d("linearLayout","currentViewId"+currentViewId);
    }
});

Пожалуйста, помогите мне решить эту проблему простым способом

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

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018
for(int i=0;i<3;i++){
        txt=new TextView(Second.this);
        txt.setText(""+i+"");
        txt.setId(""+i+"");
        linearLayout.addView(txt);
    }
0 голосов
/ 19 ноября 2018

Попробуйте этот способ setId для элементов управления представлением.

        linearLayout=(LinearLayout)findViewById(R.id.lin);
    textView.setText(s);
    for(int i=0;i<3;i++){
        txt=new TextView(Second.this);
        txt.setText(""+i+"");
        txt.setId(i);
        linearLayout.addView(txt);
    }
    int position=linearLayout .getChildCount();
    Log.d("linearLayout","count"+position);

    for(int i = 0; i < linearLayout .getChildCount(); ++i) {
        View v = linearLayout.getChildAt(i);
        int currentViewId =v.getId();
        Log.d("linearLayout","currentViewId"+currentViewId);
        if(currentViewId == 1) {
            txt.setTextColor(Second.this.getResources().getColor(R.color.colorPrimary));

        }
        else if (currentViewId==2){

        }
    }
...