Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android在动态添加按钮上的独特点击事件_Java_Android - Fatal编程技术网

Java Android在动态添加按钮上的独特点击事件

Java Android在动态添加按钮上的独特点击事件,java,android,Java,Android,对于我的应用程序,我根据arrayList动态地向listview添加按钮。我添加如下按钮: LinearLayout ll = (LinearLayout)findViewById(R.id.groupsButtonList); for(int index = 0; index < groupsList.size(); index++){ Group singleGroup = groupsList.get(index); Button myButton = new

对于我的应用程序,我根据arrayList动态地向listview添加按钮。我添加如下按钮:

LinearLayout ll = (LinearLayout)findViewById(R.id.groupsButtonList);

for(int index = 0; index < groupsList.size(); index++){

    Group singleGroup = groupsList.get(index);
    Button myButton = new Button(this);
    myButton.setText(singleGroup.name);
    AbsListView.LayoutParams lp = new AbsListView.LayoutParams( AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT);
    ll.addView(myButton, lp);
}
LinearLayout ll=(LinearLayout)findViewById(R.id.groupsButtonList);
对于(int index=0;index
我循环遍历arraylist中的所有组项。并将按钮添加到列表视图中。这很有效


我现在想做的是能够知道用户单击了哪个按钮/项目。Group对象的模型还包含一个_id,如果我可以将它添加到按钮并从on button click事件中获取它,那将是最好的。如果我只能获取按钮在列表中的位置(例如,如果第一个按钮返回0,则列表中的第四个按钮应返回4或3),那么我可以根据索引从arrayList中获取它。所有帮助都会很好。

实现这一点的一种方法是使用视图的标记,并为每个按钮设置一个OnClickListener,该按钮希望单击的视图在单击之前在其上设置该类型的标记。例如:

OnClickListener groupClickListener = new OnClickListener(){
    public void onClick(View v){
        Group clickedGroup = (Group) v.getTag();
        //DO SOMETHING
    }
};

LinearLayout ll = (LinearLayout)findViewById(R.id.groupsButtonList);

for(int index = 0; index < groupsList.size(); index++){
        Group singleGroup = groupsList.get(index);
        Button myButton = new Button(this);
        myButton.setTag(singleGroup);
        myButton.setOnClickListener(groupClickListener);
        myButton.setText(singleGroup.name);
}
OnClickListener组clicklistener=newonclicklistener(){
公共void onClick(视图v){
组clickedGroup=(组)v.getTag();
//做点什么
}
};
LinearLayout ll=(LinearLayout)findViewById(R.id.groupsButtonList);
对于(int index=0;index