gpt4 book ai didi

java - GridView 内的按钮未获得正确的 ID

转载 作者:行者123 更新时间:2023-12-02 11:41:27 27 4
gpt4 key购买 nike

我正在设计一个国际象棋棋盘应用程序,我使用 gridview 来存储 64 个按钮,并为它们分配从 0 到 63 的 id。但是 id 是从 2 而不是 0 开始,我不明白为什么会这样正在发生。

我正在使用我制作的 ButtonAdapter 类,以下是它的 getView() 方法,我将每个按钮的文本设置与其 id 相同,以确保它们获得正确的 id。

@Override
public View getView(int i, View view, ViewGroup viewGroup) {

Button button;

if(view == null){
button = new Button(mContext);
}else{
button = (Button)view;
}

button.setId(mIndex);
button.setText(button.getId()+"");
button.setTextSize(5);
button.setPadding(0,0,0,0);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(mContext, view.getId()+"", Toast.LENGTH_SHORT).show();
}

});
mIndex++;
return button;
}

mIndex 在我的构造函数中初始化为 0,如下所示

private Context mContext;
private int mIndex;
public ButtonAdapter(Context context){
mContext = context;
mIndex = 0;
}

我得到的结果截图如下 enter image description here

请帮忙,我是初学者。如有错误,敬请谅解,提前致谢。

最佳答案

不要使用mIndex变量和增量,因为它会在滚动时产生问题。

您可以使用适配器位置代替mIndex

        @Override
public View getView(int i, View view, ViewGroup viewGroup) {
Button button;
if(view == null){
button = new Button(mContext);
}else{
button = (Button)view;
}

button.setId(i);
button.setText(String.valueOf(i));
button.setTextSize(5);
button.setPadding(0,0,0,0);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(mContext, view.getId()+"", Toast.LENGTH_SHORT).show();
}

});
return button;
}

关于java - GridView 内的按钮未获得正确的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48521244/

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