使用下面的代码我可以生成一个按钮数组。但是我无法指定这些按钮的点击事件。我可以这样做吗
Button addAsFriend[] = new Button[c.getCount()];
for( i=0;i<c.getCount();i++)
{
addAsFriend[i] = new Button(this);
}
答案 0 :(得分:2)
Button addAsFriend[] = new Button[c.getCount()];
for( i=0;i<c.getCount();i++)
{
Button btn = new Button(this);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// your code here
}
};);
addAsFriend[i] = btn;
}
答案 1 :(得分:2)
Button addAsFriend[] = new Button[c.getCount()];
for( i=0;i<c.getCount();i++)
{
addAsFriend[i] = new Button(this);
((Button)addAsFriend[i]).setOnClickListener(myclickListener);
}
答案 2 :(得分:0)
您可以在活动中实施OnClickListener界面。这样做你将不得不重写onClick()方法。然后,您可以将活动作为OnClickListener传递给每个按钮。
public class YourActivity implements OnClickListener {
public void onCreate(){
...
Button addAsFriend[] = new Button[c.getCount()];
for( i=0;i<c.getCount();i++)
{
addAsFriend[i] = new Button(this);
((Button)addAsFriend[i]).setOnClickListener(this);
}
...
}
public void onClick(View v){
// Put your listener code here.
}
}
答案 3 :(得分:0)
...如果您想检索该按钮的索引,请使用地图!
Map<View,Integer> buttonMap = new HashMap<View,Integer>();
Button addAsFriend[] = new Button[c.getCount()];
for( i=0;i<c.getCount();i++)
{
Button btn = new Button(this);
buttonMap.put(btn,i);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int index = buttonMap.get( v );
// do something with index here
}
};);
addAsFriend[i] = btn;
}