- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
首先,如果问题变得太长,请原谅我:)
我写了一个(非常)简单的程序,叫做 TwoActivity
,我得到了一个错误。
程序的目的是询问用户他/她的名字并打印Hello, <name>
在另一个 Activity 中。该计划包括两项 Activity :First
和 Second
. First
本身由 EditText
组成获取用户的姓名和一个使用户能够提交姓名的按钮。 Second
由 TextView
组成打印 hello 表达式和一个返回到 First
的按钮.
这是代码:
onClick
First
中的按钮方法:
public void onClickGoToSecond(View view)
{
Intent i=new Intent(this,Second.class);
EditText e=(EditText) findViewById(R.id.editText);
i.putExtra(Second.M,e.getText().toString());
startActivity(i);
}
M
在 Second
:
public static final String M="message";
onCreate()
的 Second
:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intent i=getIntent();
TextView t=(TextView) findViewById(R.id.textView);
t.setText("Hello "+i.getStringExtra(M));
}
onClick
Second
中的按钮方法:
public void onClickGoBack(View view)
{
Intent i=new Intent(this,First.class);
startActivity(i);
}
其他部分代码我觉得就不用多说了吧。
问题是,当我转到 Second
时并触摸按钮,程序被强制关闭并报错
Unfortunately, TwoActivity has stopped.
此时,在谷歌搜索一无所获之后,我做了一些愚蠢的猜测:
First
是MainActivity
该计划,我无法做出任何 Intent 。First
之前已经创建过,我无法创建再次的 Intent 。所以,我改变了程序,看看我的愚蠢猜测是否真的愚蠢。正如我所确定的那样,他们确实是。
我添加了另一个 Activity ,称为 Third
到程序。我还在 First
添加了另一个按钮, 这样用户就可以将他/她的名字发送到 Second
或 Third
.我还在 Second
添加了另一个按钮 Intent Third
并创建了它,就像这样:
onClick
Second
中的第二个按钮:
public void onClickNext(View view)
{
Intent i=new Intent(this,Third.class);
startActivity(i);
}
Third
完全像Second
.它有两个按钮。第一个 Intent First
(所以它是后退按钮)和第二个按钮 Intent Second
并创建它。
在这一点上,我得到了一个非常奇怪的行为。当我触摸 Third
中的后退按钮时,程序运行正常。但是当我在 Second
中触摸相同的后退按钮时,程序给出了前面提到的错误。此外,当我触摸 Third
中的按钮时为了去Second
该程序也可以正常工作,但在 Second
中它引发了错误。总的来说,程序可以正常工作,直到您输入 Second
.触摸 Second
中的两个按钮出错。我根本不明白这是什么问题。
评论:请注意,如果我按下手机本身的后退按钮,或者如果我发出 First
Second
的 parent 并使用操作栏中的后退按钮,程序正常运行。
这是引发错误时返工程序的堆栈跟踪(当我单击按钮(带有 id button2to3new
)从 Second
到 Third
时引发此错误。当我单击时发生相同的错误按钮返回 First
。):
Process: com.example.mohammad.twoactivity, PID: 7564
java.lang.IllegalStateException: Could not find a method onClickNext(View) in the activity class android.support.v7.internal.view.ContextThemeWrapper for onClick handler on view class android.support.v7.widget.AppCompatButton with id 'button2to3new'
at android.view.View$1.onClick(View.java:3966)
at android.view.View.performClick(View.java:4652)
at android.view.View$PerformClick.run(View.java:19319)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5641)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1288)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1104)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoSuchMethodException: onClickNext [class android.view.View]
at java.lang.Class.getConstructorOrMethod(Class.java:472)
at java.lang.Class.getMethod(Class.java:857)
at android.view.View$1.onClick(View.java:3959)
at android.view.View.performClick(View.java:4652)
at android.view.View$PerformClick.run(View.java:19319)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
第二行说我没有onClickNext()
方法为 onClick
对于从 Second
获取用户的按钮至 Third
在我的 Activity 课上,但我有:
public void onClickBack(View view)
{
Intent i=new Intent(this,First.class);
startActivity(i);
}
public void onClickNext(View view)
{
Intent i=new Intent(this,Third.class);
startActivity(i);
}
这是 activity_second
的一部分布局文件:
<Button
...
android:id="@+id/button2to3new"
android:onClick="onClickNext"
...
/>
最佳答案
此答案基于 mohammad .k 的完整代码复制到 chat
注意错误信息是
Could not find a method onClickNext(View) in the activity class android.support.v7.internal.view.ContextThemeWrapper for onClick handler on view class android.support.v7.widget.AppCompatButton
因此 AppCompatButton 缺少一个方法,但是 Second
扩展了 ActionBarActivity
。为什么按钮被视为 AppCompatButton?为什么只有 Second
中的按钮?
比较布局文件,结果是第二个 Activity
的布局包含行
android:theme="@style/AppTheme"
就是这样:我们仁慈的 IDE(Android Studio?)生成了 AppTheme 作为
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
所以布局文件中的 Button
元素被视为属于 AppCompat 宇宙,而在幕后,当运行时询问时,可怜的旧的已弃用的 ActionBarActivity 未能正确回答对于 OnClickListener
方法...BOOM
解决方案:删除android:theme
关于android - 回到主要 Activity 的后退按钮引发 "Unfortunately Application has stopped",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34952520/
浏览器或类似浏览器的应用程序中的后退和前进按钮暂时导航(用户导航页面的顺序),这可能不一定反射(reflect)页面的逻辑顺序。是否有任何研究探讨这如何影响用户的心理模型?关于如何提高可用性和减少困惑
如果你去http://www.deviantart.com/并等待几秒钟,以便在引擎盖下加载 javascript,您可以单击一个链接,而不是转到该链接,您将转到 #/someId。您可以后退/前进。
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
This question already has answers here: How to stop audio from playing when back button is pressed?
Visual Studio 有一个名为 MouseNavi 的插件它允许您使用鼠标拇指按钮来浏览您的历史记录。 Eclipse 是否存在类似的扩展? 最佳答案 我不知道有任何 Eclipse 插件可以
我在grails上开发了一个小应用程序,第一页是我提供的邮政编码,可以按商店搜索附近的商店并选择它,然后按下一步按钮,第二页上是输入客户详细信息,然后按下一步按钮在第三页上显示输入的值,然后保存它。现
我有一个带有表单的页面,我试图在其中防止重复提交,这非常简单(以防万一有人好奇,我使用了这个 $("form").submit(function() { setTimeout(function
在过去的两天里,我一直在用一个恼人的小故障敲我的头,希望有人能解释一下。 基本设置:我有一个带有播放器的 AVPlayerLayer, View 中有一个平移手势识别器,我希望用户能够来回滑动手指,视
我有一个相当具体的用例。 假设我从页面 A 导航到页面 B(添加一个历史状态)。然后,在页面 B 上,我通过打开模式与该页面进行交互。但模式的实现方式是在单击浏览器后退按钮时关闭。 当模式打开时: n
我以前自己尝试过,但失败了。如何将 JButton 添加到 JFrame 以将其带回到之前打开的 JFrame 或“主页”框架。 在我的应用程序中,我有 4 个 JFrame,主要的和 3 个可通过按
想法是显示消息,这将通知用户,当他使用“后退”按钮时,应用程序的ajax部分可能会错误地工作。是的,有很多讨论,但没有解决方案。我发现最好的:在服务器端存储有关最后一页的信息,并通过 ajax 检查当
我有一个带有Fragment的Activity,并且有很多交易,所以后退按钮通常只是回滚Fragment交易 .但我需要检测最后一次按下。 我不能使用 onPause 方法,因为我不想在用户按下主页或
我目前使用Glide库播放GIF如下。 Glide.with(this).load(gifUrl).into(ImageView); 这很好用,但我希望用户可以选择倒回、暂停和转发 GIF。我在想只是
我正在开发一个 WPF 桌面应用程序,我有一个主窗口,我使用框架控件导航到不同的页面。它工作得很好。但我希望删除后退/前进。我该怎么做 ?请在这方面帮助我! 最佳答案 设置 NavigationUIV
我正在游戏结束时显示插页式广告。当用户快速按下“后退”按钮时,有时会发生崩溃: java.lang.IllegalStateException at android.media.MediaPlayer
我想禁用导致 Chrome 后退或前进的两指滑动。 我有一个网站,如果用户没有专门保存,他可能会失去工作进度。 我试过使用 window.onbeforeunload但是,如果我在 url 中有哈希值
后退箭头在 Xcode 中损坏? 是否有键盘命令可以一次后退/前进一个文件。 Xcode 3.2更改了 Cmd-Opt 的行为。正如另一个问题中所指出的,它们不像以前版本的 Xcode 那样在文件级
我有这些复选框 Menu Filters Select All Unselect All Vegan Vegetar
我想在按下返回按钮时将我当前的 flutter 页面重定向到主页,将重定向。当我按返回按钮时,主页/ Activity 应开始。我在主页中有多种选择,在当前页面中,如果用户不想选择它们,我可以显示眼睛
按住下一个按钮时,音频播放器速度加快... 代码代表一切 main question : How to continue to normal ? 这是我的尝试 http://jsfiddle.net/
我是一名优秀的程序员,十分优秀!