为每个动态创建的按钮添加不同的putExtra到intent

时间:2017-06-21 15:20:40

标签: android android-intent

我正在动态创建按钮到线性布局,单击按钮后会转到新活动。我想传递一个字符串,其中包含有关使用该活动单击哪个按钮的信息作为putExtra。由于某种原因,我添加到每个按钮onClickListener的意图被覆盖,因此它只发送最后一个按钮的字符串而不是被点击的按钮:

    LinearLayout l = (LinearLayout) findViewById(R.id.allOptions);

    for(int i=0; i<currentOptions.size(); i++){
        Button newButton = new Button(this);
        SortingGroup s = currentOptions.get(i);
        newButton.setText(s.getName());
        sortGroupName = s.getName();;
        newButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(v.getContext(),CategorySelector.class);
                intent.putExtra("sorting_category_name",sortGroupName);
                startActivity(intent);
            }
        });
        l.addView(newButton);
    }

1 个答案:

答案 0 :(得分:3)

在ArrayList中添加eclipselink.weaving=false ,在按钮

中添加-javaagent:<path_to_maven_REPO>\org\springframework\spring-instrument\4.3.9.RELEASE\spring-instrument-4.3.9.RELEASE.jar

sortGroupname

设置按钮ID

  

newButton.setId(ⅰ);

将名称添加到arrayList

setid()

像这样的OnClick Listener

ArrayList<String> names=new ArrayList<>();