java.lang.NullPointerException:尝试调用虚拟方法android
我是android的初学者,我不知道我的代码有什么问题!我需要你的帮助,这是我的密码: 我正在尝试做一个计算器=-/*。。。。。例如,我删除了if view==pbtn…只是为了尝试onclick函数…我找不到我的问题所在java.lang.NullPointerException:尝试调用虚拟方法android,android,Android,我是android的初学者,我不知道我的代码有什么问题!我需要你的帮助,这是我的密码: 我正在尝试做一个计算器=-/*。。。。。例如,我删除了if view==pbtn…只是为了尝试onclick函数…我找不到我的问题所在 package com.michael.mikematta.calculator; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android
package com.michael.mikematta.calculator;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import static com.michael.mikematta.calculator.R.id.FirstNum;
import static com.michael.mikematta.calculator.R.id.HelokBtn;
import static com.michael.mikematta.calculator.R.id.KafolBtn;
import static com.michael.mikematta.calculator.R.id.MinusBtn;
import static com.michael.mikematta.calculator.R.id.PlusBtn;
import static com.michael.mikematta.calculator.R.id.SecondNum;
import static com.michael.mikematta.calculator.R.id.TheResult;
public class MainActivity extends Activity implements View.OnClickListener {
EditText firstnumx;
EditText secondnum;
Button pbtn;
Button minusbtn;
Button kafolbtn;
Button helokbtn;
TextView theresult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button pbtn = (Button) findViewById(R.id.PlusBtn);
Button minusbtn = (Button) findViewById(R.id.MinusBtn);
Button kafolbtn = (Button) findViewById(R.id.KafolBtn);
Button helokbtn = (Button) findViewById(R.id.HelokBtn);
EditText firstnum = (EditText) findViewById(R.id.FirstNum);
EditText secondnum = (EditText) findViewById(R.id.SecondNum);
TextView theresult = (TextView) findViewById(R.id.TheResult);
minusbtn.setOnClickListener(this);
pbtn.setOnClickListener(this);
kafolbtn.setOnClickListener(this);
helokbtn.setOnClickListener(this);
}
@Override
public void onClick(View view) {
theresult.setText("hi");
}
}
我的xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/ic_launcher"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:text="Hello Calculator"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:textSize="20dp"
android:textColor="#000"
android:textStyle="bold"
/>
<EditText
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:gravity="center"
android:hint="Enter First Num"
android:background="#fff"
android:id="@+id/FirstNum"
android:layout_margin="10dp"
/>
<EditText
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:gravity="center"
android:hint="Enter Second Num"
android:background="#fff"
android:id="@+id/SecondNum"
android:layout_margin="10dp"
/>
<Button
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:gravity="center"
android:text="+"
android:background="#ffeeeeee"
android:textSize="22dp"
android:id="@+id/PlusBtn"
android:layout_margin="10dp"
/>
<Button
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:gravity="center"
android:text="-"
android:background="#ffeeeeee"
android:textSize="22dp"
android:id="@+id/MinusBtn"
android:layout_margin="10dp"
/>
<Button
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:gravity="center"
android:text="*"
android:background="#ffeeeeee"
android:textSize="22dp"
android:id="@+id/KafolBtn"
android:layout_margin="10dp"
/>
<Button
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:gravity="center"
android:text="/"
android:background="#ffeeeeee"
android:textSize="22dp"
android:id="@+id/HelokBtn"
android:layout_margin="10dp"
/>
<TextView
android:text="Here will be your result"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:textSize="20dp"
android:textColor="#fff"
android:textStyle="bold"
android:background="#ffff714f"
android:id="@+id/TheResult"
/>
</LinearLayout>
有什么帮助吗?您正在初始化变量的本地副本
结果在onCreate
中:
TextView theresult = (TextView) findViewById(R.id.TheResult);
但是在onClick
中,您试图访问变量theresult
的另一个实例,该变量在onCreate
之外声明。这个还没有初始化。这就是为什么在您尝试执行setText
时将其giving设为null
要解决此问题,请替换以下行:
TextView theresult = (TextView) findViewById(R.id.TheResult);
与
检查您是否已初始化视图,或者可能是布局尚未附加到“活动”
password = (EditText) findViewById(R.id.password);
或
什么问题?正确解释。单击应用程序崩溃@SarveshKumarSinghwhere是来自LogCat的错误日志@MikhaMatta:首先,删除R.id
条目的import static…
的所有行。谁让你这么做的?第二,发布您的activity\u main.xml
文件以及显示崩溃的Logcat stacktrace。我想我找到了错误。@MikhaMatta尝试回答中的解决方案,并告诉我它是否有效。
theresult = (TextView) findViewById(R.id.TheResult);
password = (EditText) findViewById(R.id.password);
setContentView(R.layour.login_screen);