我有一个动态的按钮阵列,我想知道如何处理每个按钮的onclick?我还希望用户从额外的设置菜单中给出按钮的数量。我尝试下面的代码,但给出错误的结果。 ..如何在java文件的按钮之间留出10dp的距离?我如何使用handleOnClick方法?
LinearLayout ll = (LinearLayout)findViewById(R.id.buttonlayout2);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
lp.bottomMargin=10;
Button btn[] = new Button[oNumber];
for (int i=0;i<oNumber;i++){
btn[i] = new Button(this); // initialize it
//btn[i].setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
btn[i].setText(oName[i]);
btn[i].setTextColor(Color.rgb(255 , 00 , 00));
btn[i].setId(i);
btn[i].setTag(Integer.valueOf(i));
// btn[i].setOnClickListener(handleOnClick(btn[i]));
// btn[i].setOnClickListener(this);
ll.addView(btn[i],lp);
}
for( int i = 0; i< btn.length; i++){
btn[i].setOnClickListener(new OnClickListener() {
public void onClick(View v){
//do something
//if(v.getId()==0)
Integer mp=((Integer) v.getTag()).intValue();
if( mp==0)
{
//its Button 1 do what ever u want
Toast.makeText(getApplicationContext(), "Extra button 0...", Toast.LENGTH_SHORT).show();
}
if(mp==1)
{
//its Button 2 do what ever u want its Button 2
Toast.makeText(getApplicationContext(), "Extra button 1...", Toast.LENGTH_SHORT).show();
}
}
});
}
答案 0 :(得分:0)
切换线路:
btn[i].setId(i);
使用:
btn[i].setTag(Integer.valueOf(i));
同时切换:
v.getId()==1
使用:
((Integer)v.getTag()).intValue()==1
对于保证金,您需要在setMargins()之后调用requestLayout()。