Android 我总是得到一个空指针
以下是所有错误消息:Android 我总是得到一个空指针,android,Android,以下是所有错误消息: java.lang.RuntimeException: Unable to start activity ComponentInfo{johnny.newopen/johnny.newopen.easy}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(int)' on a null object reference
java.lang.RuntimeException: Unable to start activity ComponentInfo{johnny.newopen/johnny.newopen.easy}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(int)' on a null object reference
at johnny.newopen.easy.onCreate(easy.java:126)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
以下是相关代码:
public class easy extends AppCompatActivity
{
Button solve;
private Chronometer chronometer;
TextView plus1, plus2, minus1, minus2, multy1, multy2, points;
int p1, p2, m1, m2, mu1, mu2, p, p_ans, m_ans, mu_ans;
long time;
private DBHelper mydb;
boolean check, check1, check2, check3, check4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_easy);
mydb = new DBHelper(this);
if (check1 && check2 && check3) {
p = p + 60 - (int) time;
}
mydb.insertPoints(p);
points = (TextView)findViewById(R.id.points);
int x;
try {
{x = mydb.getPoints();}
}
catch (Exception e) {x=0;}
points.setText(x);
}
}
我总是得到一个空指针来表示点。我做错了什么?设置文本时,您的文本视图似乎为空。查看您的代码(尚未完成),整数x尚未初始化。在设置x=0后尝试运行应用程序,同时尝试检查textView的id
此外,您不能将整数值设置为textview,请使用
String.valueOf()
如下所示:points.setText(String.valueOf(x))
对不起,答案的格式不正确;稍后我会修复它。检查版面中
TextView
的Id是否与活动“(点)”中提到的相同。此外,不能将整数值设置为TextView
直接使用String.valueOf()
可以使用x.toString()设置“点”的文本值。但是您应该首先检查它是否存在,因为我认为您为TextView获取了错误的id。嘿,您不能直接将int设置为TextView 简单地做
points.setText(""+x);
它将避免空指针。
或者正如阿努吉·库马尔所说,你可以
**points.setText(String.valueOf(x))**
请分享错误消息(logcat输出)也请用大写字母写类名easy
也请扩展代码以包含周围函数(可能在创建时)和setContentView()
和相应的布局。是点
还是mydb
为空?根据您的日志,也是@Yonatan Rotem;错误在activityx的第126行。如果是int,则不能为null
points.setText(""+x);