- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
public void onClick(View v) {
Level1 ob = new Level1();
ob.checkAns();
int id = v.getId();
String typed = ans.getText().toString();
String resourceName = getResources().getResourceEntryName(id);
ans.setText(typed + resourceName);
// String check =ans.getText().toString();
//
// if(check.equalsIgnoreCase("ABC")){
// Toast.makeText(Level1.this, "correct" ,Toast.LENGTH_SHORT).show();
// }
// else {
// Toast.makeText(Level1.this, "NO" ,Toast.LENGTH_SHORT).show();
// }
// }
给定的代码是我的 onClick()
方法。评论区是我有兴趣制定方法的部分。像这样:
public void checkAns() {
String check =ans.getText().toString();
if(check.equalsIgnoreCase("ABC")){
Toast.makeText(Level1.this, "correct" ,Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(Level1.this, "NO" ,Toast.LENGTH_SHORT).show();
}
}
我想在 onClick 方法中调用它,如 onClick()
方法所示,即:
`public void onClick(View v) {
Level1 ob = new Level1();
ob.checkAns();....
Level1
是我的类(class)名称。我的问题是,当我从 onClick()
调用方法 checkAns()
并单击任何按钮时,我的应用程序停止了当我在 onClick()
中使用相同的 checkAns()
代码并删除 checkAns()
的调用语句时,应用程序可以正常工作美好的。希望我的问题是可以理解的。请帮忙。
更新:我的一级类(class)。
package com.example.letsguesssomething;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
public class Level1 extends Activity implements OnClickListener{
ImageButton A,B,C,D,E,F,G,H,I,J;
TextView ans;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_level1);
A = (ImageButton) findViewById(R.id.A);
B = (ImageButton) findViewById(R.id.B);
C = (ImageButton) findViewById(R.id.C);
D = (ImageButton) findViewById(R.id.D);
E = (ImageButton) findViewById(R.id.E);
F = (ImageButton) findViewById(R.id.F);
G = (ImageButton) findViewById(R.id.G);
H = (ImageButton) findViewById(R.id.H);
I = (ImageButton) findViewById(R.id.I);
J = (ImageButton) findViewById(R.id.J);
ans = (TextView) findViewById(R.id.ans);
A.setOnClickListener(this);
B.setOnClickListener(this);
C.setOnClickListener(this);
D.setOnClickListener(this);
E.setOnClickListener(this);
F.setOnClickListener(this);
G.setOnClickListener(this);
H.setOnClickListener(this);
I.setOnClickListener(this);
J.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//Level1 ob = new Level1();
//ob.checkAns();
int id = v.getId();
String typed = ans.getText().toString();
String resourceName = getResources().getResourceEntryName(id);
ans.setText(typed + resourceName);
String check =ans.getText().toString();
if(check.equalsIgnoreCase("ABC")){
Toast.makeText(Level1.this, "correct" ,Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(Level1.this, "NO" ,Toast.LENGTH_SHORT).show();
}
}
}
public void checkAns() {
String check =ans.getText().toString();
if(check.equalsIgnoreCase("ABC")){
Toast.makeText(Level1.this, "correct" ,Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(Level1.this, "NO" ,Toast.LENGTH_SHORT).show();
}
}
}
最佳答案
要获得正确答案,您必须提供问题的堆栈跟踪。ans.getText() 中使用的 ans 变量可能有问题。您是否检查过它是否分配了非空值?
顺便问一下,你的 Level1 类是 Activity 类的扩展吗?因为您使用 Level1.this 作为为 Toast 提供的上下文。在这种情况下,问题可能出在初始化 Level1 对象的方式上。使用构造函数实例化 Activity 的情况并不常见。
编辑:
重点是,您永远不应该像在 Leve1 ob = new Level1()
中那样在 Activity 类中创建 Activity 对象。您可以替换
Level1 ob = new Level1();
ob.checkAns();
与
checkAns();
并将 checkAns 函数移动到您的 Activity 类中,而不是移出它。由于 checkAns() 是 Level1 类的方法,因此您可以在非静态类函数中的任何位置调用它,其中当然包括 onClick 方法。
下面的代码应该可以正常工作。
public class Level1 extends Activity implements OnClickListener{
ImageButton A,B,C,D,E,F,G,H,I,J;
TextView ans;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_level1);
A = (ImageButton) findViewById(R.id.A);
B = (ImageButton) findViewById(R.id.B);
C = (ImageButton) findViewById(R.id.C);
D = (ImageButton) findViewById(R.id.D);
E = (ImageButton) findViewById(R.id.E);
F = (ImageButton) findViewById(R.id.F);
G = (ImageButton) findViewById(R.id.G);
H = (ImageButton) findViewById(R.id.H);
I = (ImageButton) findViewById(R.id.I);
J = (ImageButton) findViewById(R.id.J);
ans = (TextView) findViewById(R.id.ans);
A.setOnClickListener(this);
B.setOnClickListener(this);
C.setOnClickListener(this);
D.setOnClickListener(this);
E.setOnClickListener(this);
F.setOnClickListener(this);
G.setOnClickListener(this);
H.setOnClickListener(this);
I.setOnClickListener(this);
J.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int id = v.getId();
String typed = ans.getText().toString();
String resourceName = getResources().getResourceEntryName(id);
ans.setText(typed + resourceName);
checkAns();
}
public void checkAns() {
String check =ans.getText().toString();
if(check.equalsIgnoreCase("ABC")){
Toast.makeText(Level1.this, "correct" ,Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(Level1.this, "NO" ,Toast.LENGTH_SHORT).show();
}
}
}
关于java - 安卓 : calling a user defined method causing application misbehave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34557504/
在下面的代码中: for(int i = 5; i <= 100; i+=5) { linearSurprise(i); // Function calling 'S
#include using namespace std; struct X { int i_Val; X(int iVal) :i_Val(iVal) {
我正在尝试解决这个网络问题,我在执行任何 docker 命令(如“Docker search Ubuntu”)时多次遇到该问题。 我收到一条错误消息: "Error response from dae
这是在为 vim 编写脚本时弹出的。 使用有据可查的 ':normal' 命令: :normal /abc 不搜索字符串 abc。相反,之前的搜索字符串仍然有效(即突出显示、跳转到 n 等)。 更奇
我需要帮助来修复 2 列列表。 问题是,如果使用多于一行,右列会侵入左列。 另一个麻烦是如果左栏多行,右栏里面的内容会出现在底部。 多于 1 行时,列之间的分隔线也很奇怪(请参见下面的示例)。 请注意
我正在使用 yaml-cpp,一个 yaml 解析库,我快要疯了,因为我的 yaml 文档没有被完全解析。结果证明这是因为构造函数应该被赋予一个引用,而不是一个对象。 错误的代码: ifstr; YA
我正在其中一个 PDF 页面上绘制图像。当我使用 PDPageContentStream stream = new PDPageContentStream(doc, page); 绘制图像时,一切正常
在 Rails 中,如果使用 JavaScript 输入的日期无效,我想通过 flash[:alert] 显示错误消息。 但这里即使给定的日期是正确的,它也会显示错误,因为页面第一次加载时它会显示消息
当光标通过 contains(p) 方法在矩形数组列表上移动时,我需要更改光标。问题是 我的第一个使用迭代器迭代矩形的算法无法按预期工作。光标仅在将鼠标悬停在第一个矩形上时才会发生变化,在其他矩形中它
我正在尝试按照 hello-world 指令 here 在 Windows 上运行 docker(操作系统:Microsoft Windows 10 Pro 64 位,Docker 版本:18.09.
我正在使用 bootstrap 3 表,但正如您所看到的最后一列(日期)具有不同的 css 样式(粗体)我没有要求,在尝试弄清楚时我发现它是用户代理这是谁做的!我听说过覆盖它,但当我这样做时它也会影响
public void onClick(View v) { Level1 ob = new Level1(); ob.checkAns(); int i
是错误报告: The specified CGI application misbehaved by not returning a complete set of HTTP heade
首先,我想为我发布的长代码道歉,它们非常简单,只是一个重复 17 次的 p:selectOneMenu(这就是为什么它很长)。 我遇到的问题是,如果我在一个表单中有太多 p:selectOneMenu
我知道从 Java 8 开始,如果 HashMap 有足够多的哈希冲突,并且键实现了 Comparable,它会 use a balanced tree instead of a linked lis
我是一名优秀的程序员,十分优秀!