Java OnclickListener对于动态充气视图工作不正常

Java OnclickListener对于动态充气视图工作不正常,java,android,android-studio,android-fragments,android-inflate,Java,Android,Android Studio,Android Fragments,Android Inflate,我面临一个关于在片段上动态创建布局的问题。这是我的片段代码 public class Points extends Fragment { LinearLayout gameListHolder; String name; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanc

我面临一个关于在片段上动态创建布局的问题。这是我的片段代码

public class Points extends Fragment {
LinearLayout gameListHolder;
String name;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_game,null);
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    gameListHolder=view.findViewById(R.id.gameListHolder);
    for(int i=0;i<=3;i++){
        LayoutInflater layoutInflater = (LayoutInflater)getActivity().getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View addView = layoutInflater.inflate(R.layout.game_list_single, null);
        name=Integer.toString(i);
        Button status= (Button) addView.findViewById(R.id.statusButton);
        status.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.i("Rahat",name);
            }
        });
        gameListHolder.addView(addView);
    }
}
公共类点扩展片段{
线性布局游戏列表持有者;
字符串名;
@可空
@凌驾
创建视图时的公共视图(@NonNull LayoutInflater inflater、@Nullable ViewGroup container、@Nullable Bundle savedInstanceState){
返回充气机。充气(右布局。碎片游戏,空);
}
@凌驾
已创建公用void onview(@NonNull视图,@Nullable Bundle savedInstanceState){
gameListHolder=view.findViewById(R.id.gameListHolder);
对于(int i=0;i请使用本地“name”变量,如下所示:

String name=Integer.toString(i);

您可以选择将标签设置为按钮,然后在onclick中检查 标记以查找单击的按钮。即

    item.setTag(name);
    status.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Log.i("Rahat",view.getTag().toString());
                }
            });

这是因为变量<代码>名称<代码>是一个成员变量,是可变的。设置为它的最后一个值是“代码>3”/代码>。因此,当单击按钮时,它显示3。这不是创建列表的好方法。考虑使用RealdReVIEW和适配器InStudio建议您在记录值时使用ListVIEW替代此动态添加项目。在此之前,onclick显示完美值。问题只发生在onclick块上,onclick块不知道