gpt4 book ai didi

Android:findViewById 上的扩展按钮 NullPointerException?

转载 作者:行者123 更新时间:2023-11-29 17:51:39 25 4
gpt4 key购买 nike

我是 ADT 的新手,因此,我在尝试扩展“android.widget.Button”时遇到了一些问题。事实上,我想从按钮访问 android.widget.EditText,但每次我这样做都会遇到 NullPointerException:

public class ButtonAdd extends Button implements OnClickListener{ 
public ButtonAdd(Context context) {
super(context);
this.onCreate();
}

public ButtonAdd(Context context, AttributeSet attrs) {
super(context, attrs);
this.onCreate();
}

public ButtonAdd(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.onCreate();
}

@Override
public void onClick(View v) {
EditText item = (EditText) this.findViewById(R.id.editText1);
Toast.makeText(this.getContext(), "Text: " + item.getText().toString(), Toast.LENGTH_LONG).show();
}

private void onCreate() {
this.setOnClickListener(this);
}
}

这引发了以下异常:

致命异常:main

java.lang.NullPointerException
at outlook.ButtonAdd.onClick(ButtonAdd.java:35)
at android.view.View.performClick(View.java:2485)
at android.view.View$PerformClick.run(View.java:9080)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)

最佳答案

View.findViewById 仅检查此 View 的 id 是否等于提供的 id,如果 id 匹配则返回 this,因为当然一个 View 可以没有 child 。这就是为什么

 EditText item = (EditText) this.findViewById(R.id.editText1); 

项目为空。这是完全有道理的。 Button 如何拥有 EditText?可能您的 EditText 属于您在 Activity

中设置的布局

关于Android:findViewById 上的扩展按钮 NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22485048/

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