为了账号安全,请及时绑定邮箱和手机立即绑定

.setOnClickListener 在空对象引用上(不能调用 ID?)

.setOnClickListener 在空对象引用上(不能调用 ID?)

动漫人物 2021-09-29 15:21:44
在这个应用程序中,我正在动态创建一个带有 LinearLayout、TextView 和两个按钮的计数器对象,我希望在类中使用 onClickListener,因为这似乎是最好的解决方案。我唯一能想到的是我不知何故弄错了 ID 创建。动态创建事物的最佳实践是什么?包括应用程序和所有代码的屏幕截图。public class Counter implements View.OnClickListener {    private final int subButtonId = View.generateViewId();...    private void createSubButton() {        subButton = new Button(context);        subButton.setLayoutParams(new LinearLayout.LayoutParams(buttonWidth, LinearLayout.LayoutParams.MATCH_PARENT, 0.5f));        subButton.setText("-");        subButton.setTextSize(buttonTextSize);        subButton.setId(subButtonId);        subButton.setGravity(Gravity.CENTER | Gravity.CENTER_HORIZONTAL);        container.addView(subButton);        sub = mainContainer.findViewById(subButtonId);        sub.setOnClickListener(new MyOnClickListener() {            @Override            public void onClick(View v) {                subCount();                disp.setText(count.toString());            }        });    }}class MyOnClickListener implements View.OnClickListener {    public MyOnClickListener() {    }    @Override    public void onClick(View v) {    }}计数器类:https : //pastebin.com/YTHUbGFf主类:https : //pastebin.com/p3p2PPEULogcat:https ://pastebin.com/0fYSKJyj应用图片:https : //imgur.com/a/1Dfx4fJ
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

  1. 您无需再次查找视图。你可以打电话subButton.setOnClickListener(...);

  2. 我看不出container和之间有任何关系mainContainer。您将视图添加到您的container,但正在从mainContainer


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信