gpt4 book ai didi

android - 如何使用 xml 按钮以编程方式禁用按钮

转载 作者:数据小太阳 更新时间:2023-10-29 02:39:06 25 4
gpt4 key购买 nike

我在 for 循环中以编程方式创建了 4 个按钮,是否可以使用在 xml 中创建按钮来禁用 onclicklistener 函数或 ontouchlistener 函数?对不起我的英语,希望能理解我的问题。

示例图片

enter image description here

代码

public class Tab1 extends Fragment {

TextView textView, test1;
Button button, button2;
LinearLayout rl;

//Overriden method onCreateView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View h = inflater.inflate(R.layout.tab1, container, false);
//Returning the layout file after inflating
//Change R.layout.tab1 in you classest
textView = (TextView) h.findViewById(R.id.textView);
test1 = (TextView) h.findViewById(R.id.test1);
button = (Button) h.findViewById(R.id.button);
button2 = (Button) h.findViewById(R.id.button2);
rl = (LinearLayout) h.findViewById(R.id.tlayout);

for (int i = 1; i < 5; i++) {

final Button btnAddARoom = new Button(getActivity());
RelativeLayout.LayoutParams params;
params = new RelativeLayout.LayoutParams
(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

btnAddARoom.setText("Add");
btnAddARoom.setLayoutParams(params);
rl.addView(btnAddARoom);


btnAddARoom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
test1.setText("qweqweqweqwe");
}
});

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
btnAddARoom.setOnClickListener(null);
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
test1.setText("111111111111111");
}
});
}


return h;
}
}

最佳答案

将您从 for 循环创建的所有按钮添加到一个数组中。

ArrayList<Buttons> buttons = new ArrayList<Buttons>();

for(int i =1 ; i<5 ; i++) {

final Button btnAddARoom = new Button(getActivity());
RelativeLayout.LayoutParams params;
params = new RelativeLayout.LayoutParams
(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

btnAddARoom.setText("Add");
btnAddARoom.setLayoutParams(params);
rl.addView(btnAddARoom);

buttons.add(YourDynamicallyCreatedButton)
}

现在在你的 xml 按钮的 onClick 中:

onClick(){
for(Button button: buttons){
button.setEnable(false)
}
}

注意:

当我们通过 xml 添加 View (按钮或文本..)时,我们给它一个 id。我们可以使用此 ID 访问这些元素。同样,当我们动态创建按钮时,我们需要为按钮/ View 设置 id。

关于android - 如何使用 xml 按钮以编程方式禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41543535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com