如何获取线性布局中动态添加的edittext的子位置?

时间:2018-11-19 06:05:43

标签: android view android-linearlayout

在这里,我使用了带有重复字符串的列表。我要循环运行,说如果项目为“ 1”,那么如果其“ 4”正常edittext,则edittext输入类型应该为数字。现在我的问题是如何在edittext的onclick事件中获取ID。下面的代码一直有效,直到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 :(得分:0)

尝试使用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){

        }
    }

答案 1 :(得分:0)

for(int i=0;i<3;i++){
        txt=new TextView(Second.this);
        txt.setText(""+i+"");
        txt.setId(""+i+"");
        linearLayout.addView(txt);
    }