gpt4 book ai didi

Java - 具有多个onClickListener的高效方法

转载 作者:行者123 更新时间:2023-12-02 02:43:35 24 4
gpt4 key购买 nike

我的应用程序当前有 5 个按钮(稍后我将添加更多按钮),单击每个按钮时,它都会为一个项目分配一个编号。

我想知道是否有一种更有效的方法来编写 setOnClickListner (似乎我必须使用它,因为我将其用作 fragment 。如果我要分配 onClick,我找到了一种方法来做到这一点在 xml 中,但我无法将其应用于这部分代码)。我已经写了5次了(以后会更多)

    buttons[0] = (Button) view.findViewById(R.id.cut1Btn);
buttons[1] = (Button) view.findViewById(R.id.cut2Btn);
buttons[2] = (Button) view.findViewById(R.id.cut3Btn);
buttons[3] = (Button) view.findViewById(R.id.cut4Btn);
buttons[4] = (Button) view.findViewById(R.id.cut5Btn);

buttons[0].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "TESTING BUTTON CLICK 1",Toast.LENGTH_SHORT).show();
data = 1;
}
});

buttons[1].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "TESTING BUTTON CLICK 2",Toast.LENGTH_SHORT).show();
data = 2;
}
});

buttons[2].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "TESTING BUTTON CLICK 3",Toast.LENGTH_SHORT).show();
data = 3;
}
});

buttons[3].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "TESTING BUTTON CLICK 4",Toast.LENGTH_SHORT).show();
data = 4;
}
});

buttons[4].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "TESTING BUTTON CLICK 5",Toast.LENGTH_SHORT).show();
data = 5;
}
});

我可以做一个开关或循环吗?就像为按钮数组分配 i = 0, i < 5, i++ 一样,然后为数据分配 data = i + 1 ?如果是这样,对我如何做到这一点有什么建议吗?

谢谢!

最佳答案

这里的其他答案也可以,但是要么使用标签(通常是一个坏主意并阻止任何其他使用)并且不是真正面向对象的。相反,您应该创建一个类并实例化它。

private class MyClickListener {
private int data;
public MyClickListener(int data) {
this.data = data;
}
public void onClick(View view) {
Toast.makeText(getActivity(), "TESTING BUTTON CLICK" + data,Toast.LENGTH_SHORT).show();
}
}

...

int i=0;
for(Button button : buttons) {
button.setOnClickListener(new MyClickListener(i++));
}

关于Java - 具有多个onClickListener的高效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45025022/

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