Подтвердить что ты не робот

Как получить динамический динамический идентификатор дочернего вида с щелчком мыши на LinearLayout?

Я добавляю дочерний вид к линейной компоновке. У самого ребенка есть некоторые текстовые и образы изображений в Relativelayout. Детский вид добавляется динамически в LinearLayout при нажатии кнопки. Сейчас я могу добавить дочерний вид, как показано на этом рисунке. http://dl.dropbox.com/u/50249620/SC20120926-031356.png то, что я должен сделать, это уникальная идентификация того, какой дочерний просмотр был нажат, чтобы показать соответствующие действия. Мой код, где я добавляю дочерний вид.

addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);


                customView1 = inflater.inflate(R.layout.people, null);

                peopleName = (TextView) customView1.findViewById(R.id.peopleName);

                peopleName.setText(autoComplete.getText());
                customView1.setId(peopleInvitedRelativeLayout.getChildCount() + 1);

                params4 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

                customView1.setLayoutParams(params4);
                peopleInvitedRelativeLayout.addView(customView1, params4);              

            }
        }); 

Любая помощь или предложения будут оценены. Спасибо.

4b9b3361

Ответ 1

Вы можете добавить пользовательский тег в любой вид, просто выполнив следующие действия при создании представления

view.setTag(Object o);

то позже в onClickListener найдите тег с

view.getTag()

setTag(Object o) будет принимать любой объект, будь то строка, int или пользовательский класс

ИЗМЕНИТЬ

addButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);


            customView1 = inflater.inflate(R.layout.people, null);

            peopleName = (TextView) customView1.findViewById(R.id.peopleName);

            peopleName.setText(autoComplete.getText());
            customView1.setId(peopleInvitedRelativeLayout.getChildCount() + 1);

            params4 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

            customView1.setLayoutParams(params4);
            peopleInvitedRelativeLayout.addView(customView1, params4);

            //add a tag to a view and add a clicklistener to the view
            customView1.setTag(someTag);
            customView1.setOnClickListener(myClickListner);



        }
    });

clicklistener - создайте для него переменную класса

OnClickListener myClickListener = new onClickListener(){
    @Override
    public void onClick(View v) {

        if(v.getTag() == someTag){
             //do stuff
        }else if(v.getTag() == otherTag){
             //do something else
        }
    }