Android onClickListener中的变量值错误
我正在动态复制线性布局,我必须为线性布局内的按钮设置onClickListenersAndroid onClickListener中的变量值错误,android,android-layout,android-linearlayout,Android,Android Layout,Android Linearlayout,我正在动态复制线性布局,我必须为线性布局内的按钮设置onClickListeners for(int i = 0; i <10 ; i++){ // other code here Button approve_btn = (Button) findViewById(R.id.rent_number_up_btn); approve_btn.setOnClickListener(new View.OnClickListener() { @Override
for(int i = 0; i <10 ; i++){
// other code here
Button approve_btn = (Button) findViewById(R.id.rent_number_up_btn);
approve_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
approve_btn.setText(String.valueOf(i));
}
});
}
for(int i=0;i问题是您正在连续10次将click listener设置为同一按钮(通过调用findViewById()
)。您会得到值9
,因为这是您添加到按钮的最后一个click listener。for(int i=0;i我不确定您要做什么,但:
for(int i = 0; i <10 ; i++){
// other code here
Button button = new Button(<Activity Instance>);
button.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
approve_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
approve_btn.setText(String.valueOf(i));
}
});
}
就像@Shaishav所说的,你们使用的是同一个按钮(R.id.rent\u number\u up\u btn),你们正在替换彼此之上的点击监听器。循环完成之前(计数器“i”)的最后一个值是9,这就是为什么它总是显示9。若你们想在线性布局中添加10个按钮,只需创建新的按钮(上下文)每次循环开始时,通过将此按钮添加到布局中
yourLinearlayout.addView(yourNewButton);
然后,如果您将“单击侦听器”设置为“新建”按钮,它可能会显示不同的值:)对不起,请详细解释您的问题。我不明白