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块不知道