Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何为动态添加的按钮添加单击事件_Android_Layout_Onclicklistener - Fatal编程技术网

Android 如何为动态添加的按钮添加单击事件

Android 如何为动态添加的按钮添加单击事件,android,layout,onclicklistener,Android,Layout,Onclicklistener,我遵循下面给出的链接。我在代码中遗漏了什么 改变 07-04 12:22:07.535: E/AndroidRuntime(20957): FATAL EXCEPTION: main 07-04 12:22:07.535: E/AndroidRuntime(20957): android.content.res.Resources$NotFoundException: String resource ID #0x3 07-04 12:22:07.535: E/AndroidRuntime(209

我遵循下面给出的链接。我在代码中遗漏了什么

改变

07-04 12:22:07.535: E/AndroidRuntime(20957): FATAL EXCEPTION: main
07-04 12:22:07.535: E/AndroidRuntime(20957): android.content.res.Resources$NotFoundException: String resource ID #0x3
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.content.res.Resources.getText(Resources.java:233)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.widget.Toast.makeText(Toast.java:265)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at com.example.testapp.ShowActivity.onClick(ShowActivity.java:55)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.view.View.performClick(View.java:4103)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.view.View$PerformClick.run(View.java:17117)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.os.Handler.handleCallback(Handler.java:615)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.os.Looper.loop(Looper.java:137)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.app.ActivityThread.main(ActivityThread.java:4744)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at java.lang.reflect.Method.invokeNative(Native Method)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at java.lang.reflect.Method.invoke(Method.java:511)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at dalvik.system.NativeStart.main(Native Method)
context The context to use. Usually your Application or Activity object.
resId   The resource id of the string resource to use. Can be formatted text.
duration    How long to display the message. Either LENGTH_SHORT or LENGTH_LONG

如果将int值作为第二个参数传递给
makeText
android将查找
id
位于
R.String
内部的字符串。如果它不存在,您的应用程序将因android.content.res.Resources$NotFoundException:

更改而崩溃

07-04 12:22:07.535: E/AndroidRuntime(20957): FATAL EXCEPTION: main
07-04 12:22:07.535: E/AndroidRuntime(20957): android.content.res.Resources$NotFoundException: String resource ID #0x3
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.content.res.Resources.getText(Resources.java:233)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.widget.Toast.makeText(Toast.java:265)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at com.example.testapp.ShowActivity.onClick(ShowActivity.java:55)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.view.View.performClick(View.java:4103)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.view.View$PerformClick.run(View.java:17117)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.os.Handler.handleCallback(Handler.java:615)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.os.Looper.loop(Looper.java:137)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.app.ActivityThread.main(ActivityThread.java:4744)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at java.lang.reflect.Method.invokeNative(Native Method)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at java.lang.reflect.Method.invoke(Method.java:511)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at dalvik.system.NativeStart.main(Native Method)
context The context to use. Usually your Application or Activity object.
resId   The resource id of the string resource to use. Can be formatted text.
duration    How long to display the message. Either LENGTH_SHORT or LENGTH_LONG

如果将int值作为第二个参数传递给
makeText
android将查找
id
位于
R.String
内部的字符串。如果它不存在,您的应用程序将因android.content.res.Resources$NotFoundException而崩溃:

这就是问题所在

Toast.makeText(getApplicationContext(),
                    String.valueOf(v.getId()), 8000).show();
换成

     Toast.makeText(getApplicationContext(),
                v.getId(), 8000).show();

您正在使用下面的

publicstatictoast-makeText(上下文上下文、int-resId、int-duration)

制作一个标准的toast,其中只包含一个包含来自资源的文本的文本视图

参数

        Toast.makeText(getApplicationContext(),
            String.valueOf(v.getId()), 8000).show();
如果找不到资源,则抛出

资源。NotFoundException

它需要一个不存在的int型资源。因此有例外

你应该使用下面的

publicstatictoast-makeText(上下文上下文、字符序列文本、int-duration)

上面的方法需要CharacterSequence,所以使用
String.valueOf(v.getId())

这就是问题所在

Toast.makeText(getApplicationContext(),
                    String.valueOf(v.getId()), 8000).show();
换成

     Toast.makeText(getApplicationContext(),
                v.getId(), 8000).show();

您正在使用下面的

publicstatictoast-makeText(上下文上下文、int-resId、int-duration)

制作一个标准的toast,其中只包含一个包含来自资源的文本的文本视图

参数

        Toast.makeText(getApplicationContext(),
            String.valueOf(v.getId()), 8000).show();
如果找不到资源,则抛出

资源。NotFoundException

它需要一个不存在的int型资源。因此有例外

你应该使用下面的

publicstatictoast-makeText(上下文上下文、字符序列文本、int-duration)

上面的方法需要CharacterSequence,因此请使用
String.valueOf(v.getId())
更改

07-04 12:22:07.535: E/AndroidRuntime(20957): FATAL EXCEPTION: main
07-04 12:22:07.535: E/AndroidRuntime(20957): android.content.res.Resources$NotFoundException: String resource ID #0x3
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.content.res.Resources.getText(Resources.java:233)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.widget.Toast.makeText(Toast.java:265)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at com.example.testapp.ShowActivity.onClick(ShowActivity.java:55)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.view.View.performClick(View.java:4103)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.view.View$PerformClick.run(View.java:17117)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.os.Handler.handleCallback(Handler.java:615)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.os.Looper.loop(Looper.java:137)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at android.app.ActivityThread.main(ActivityThread.java:4744)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at java.lang.reflect.Method.invokeNative(Native Method)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at java.lang.reflect.Method.invoke(Method.java:511)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-04 12:22:07.535: E/AndroidRuntime(20957):    at dalvik.system.NativeStart.main(Native Method)
context The context to use. Usually your Application or Activity object.
resId   The resource id of the string resource to use. Can be formatted text.
duration    How long to display the message. Either LENGTH_SHORT or LENGTH_LONG

改变

我想我找到了:

公共静态Toast makeText(上下文上下文,int resId,int 持续时间)

添加到API级别1中,制作仅包含文本的标准toast 使用资源中的文本进行查看

参数上下文要使用的上下文。通常是您的应用程序或 活动对象。resId要使用的字符串资源的资源id。 可以格式化为文本。显示消息的持续时间。 LENGTH\u SHORT或LENGTH\u LONG如果资源不能被调用,则抛出 建立Resources.NotFoundException公共静态Toast makeText (上下文、字符序列文本、整数持续时间)

添加到API级别1中,制作仅包含文本的标准toast 视图

参数上下文要使用的上下文。通常是您的应用程序或 活动对象。文本要显示的文本。可以格式化为文本。 显示消息的持续时间。长短 长度

改变

Toast.makeText(getApplicationContext(),
                    v.getId().toString(), 8000).show();

我想我找到了:

公共静态Toast makeText(上下文上下文,int resId,int 持续时间)

添加到API级别1中,制作仅包含文本的标准toast 使用资源中的文本进行查看

参数上下文要使用的上下文。通常是您的应用程序或 活动对象。resId要使用的字符串资源的资源id。 可以格式化为文本。显示消息的持续时间。 LENGTH\u SHORT或LENGTH\u LONG如果资源不能被调用,则抛出 建立Resources.NotFoundException公共静态Toast makeText (上下文、字符序列文本、整数持续时间)

添加到API级别1中,制作仅包含文本的标准toast 视图

参数上下文要使用的上下文。通常是您的应用程序或 活动对象。文本要显示的文本。可以格式化为文本。 显示消息的持续时间。长短 长度

改变

Toast.makeText(getApplicationContext(),
                    v.getId().toString(), 8000).show();


干净整洁的回答。谢谢干净整洁的回答。谢谢你总是很快。)我总是很快想到同样的事情。我也这么想,为什么他会得到ResNotFoundException?没错,第二个参数中应该是字符串。我会编辑它。为什么他会得到ResNotFoundException?没错,第二个参数中应该是字符串。我会编辑它。