Android计算器应用程序:不幸的是,应用程序已停止
我是adnroid的新手,正在开发一个计算器应用程序 我的应用程序没有错误,但它不工作。当我运行应用程序时,它说HesapMakinası已停止 这是我的代码。变量是土耳其语Android计算器应用程序:不幸的是,应用程序已停止,android,error-handling,Android,Error Handling,我是adnroid的新手,正在开发一个计算器应用程序 我的应用程序没有错误,但它不工作。当我运行应用程序时,它说HesapMakinası已停止 这是我的代码。变量是土耳其语 package com.example.hesapmakinesi; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.wi
package com.example.hesapmakinesi;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
double sayi1=0;
double sayi2=0;
String islem;
double sonuc=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button no0 = (Button)findViewById(R.id.button1);
Button no1 = (Button)findViewById(R.id.button2);
Button no2 = (Button)findViewById(R.id.button3);
Button no3 = (Button)findViewById(R.id.button4);
Button no4 = (Button)findViewById(R.id.button5);
Button no5 = (Button)findViewById(R.id.button6);
Button no6 = (Button)findViewById(R.id.button7);
Button no7 = (Button)findViewById(R.id.button8);
Button no8 = (Button)findViewById(R.id.button9);
Button no9 = (Button)findViewById(R.id.button10);
Button arti = (Button)findViewById(R.id.button11);
Button eksi = (Button)findViewById(R.id.button12);
Button carpi = (Button)findViewById(R.id.button14);
Button bolu = (Button)findViewById(R.id.button13);
Button esittir = (Button)findViewById(R.id.button15);
Button sifirla = (Button)findViewById(R.id.button16);
Button teksil = (Button)findViewById(R.id.button17);
final EditText islemekran = (EditText)findViewById(R.id.islemekran);
// Her Button ve Edittext için bir nesne tanımlandı ve
// findViewById fonksiyonuyla nesnelere bileşenler atandı.
//0-9 arası sayılar için tıklama olayları ve gerekli kodlar.
no0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
islemekran.setText(islemekran.getText()+"0");
}
});
no1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
islemekran.setText(islemekran.getText()+"1");
}
});
no2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
islemekran.setText(islemekran.getText()+"2");
}
});
no3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
islemekran.setText(islemekran.getText()+"3");
}
});
no4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
islemekran.setText(islemekran.getText()+"4");
}
});
no5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
islemekran.setText(islemekran.getText()+"5");
}
});
no6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
islemekran.setText(islemekran.getText()+"6");
}
});
no7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
islemekran.setText(islemekran.getText()+"7");
}
});
no8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
islemekran.setText(islemekran.getText()+"8");
}
});
no9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
islemekran.setText(islemekran.getText()+"9");
}
});
// İşlemler için tıklama olayları ve gerekli kodlar
arti.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
sayi1=Double.parseDouble(islemekran.getText().toString());
islemekran.setText("");
islem = "+";
} catch (Exception e) {
}
}
});
eksi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!(islemekran.getText().toString().equals("")))
{
sayi1=Double.parseDouble(islemekran.getText().toString());
islemekran.setText("");
islem = "-";
}
}
});
carpi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!(islemekran.getText().toString().equals("")))
{
sayi1=Double.parseDouble(islemekran.getText().toString());
islemekran.setText("");
islem = "x";
}
}
});
bolu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!(islemekran.getText().toString().equals("")))
{
sayi1=Double.parseDouble(islemekran.getText().toString());
islemekran.setText("");
islem = "/";
}
}
});
esittir.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
sayi2=Double.parseDouble((islemekran.getText().toString()));
if(islem.equals("+"))
{
sonuc = sayi1+sayi2;
sayi1=0;
sayi2=0;
}else if(islem.equals("-"))
{
sonuc = sayi1-sayi2;
sayi1=0;
sayi2=0;
}else if(islem.equals("x"))
{
sonuc = sayi1*sayi2;
sayi1=0;
sayi2=0;
}
else if(islem.equals("/"))
{
sonuc = sayi1/sayi2;
sayi1=0;
sayi2=0;
}
islemekran.setText(Double.toString(sonuc));
} catch (Exception e) {
}
}
});
sifirla.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
islemekran.setText("");
islem="";
sayi1=0;
sayi2=0;
} catch (Exception e) {
}
}
});
teksil.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
if(!(islemekran.getText().toString().equals("")))
{
String kopyaekran = islemekran.getText().toString();
kopyaekran=kopyaekran.substring(0, kopyaekran.length()-1);
islemekran.setText(kopyaekran);
}else
{
islem="";
}
} catch (Exception e) {
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
布局
</EditText>
<Button
android:id="@+id/button2"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_centerHorizontal="true"
android:text="@string/no2" />
<Button
android:id="@+id/button3"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button2"
android:layout_alignBottom="@+id/button2"
android:layout_alignParentRight="true"
android:layout_marginRight="18dp"
android:text="@string/no3" />
<Button
android:id="@+id/button6"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button3"
android:layout_alignTop="@+id/button5"
android:text="@string/no6" />
<Button
android:id="@+id/button8"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/button7"
android:layout_centerHorizontal="true"
android:text="@string/no8" />
<Button
android:id="@+id/button9"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button6"
android:layout_alignTop="@+id/button8"
android:text="@string/no9" />
<Button
android:id="@+id/button12"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button9"
android:layout_alignTop="@+id/button11"
android:text="@string/eksi" />
<Button
android:id="@+id/button14"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button13"
android:layout_alignBottom="@+id/button13"
android:layout_alignLeft="@+id/button11"
android:text="@string/arti" />
<Button
android:id="@+id/button15"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button12"
android:layout_alignTop="@+id/button14"
android:text="@string/carpi" />
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText1"
android:layout_marginLeft="14dp"
android:text="@string/no1" />
<Button
android:id="@+id/button17"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button16"
android:layout_alignBottom="@+id/button16"
android:layout_alignLeft="@+id/button15"
android:text="@string/esittir" />
<Button
android:id="@+id/button11"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button10"
android:layout_alignBottom="@+id/button10"
android:layout_alignLeft="@+id/button8"
android:text="@string/arti" />
<Button
android:id="@+id/button7"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button4"
android:layout_below="@+id/button4"
android:text="@string/no7" />
<Button
android:id="@+id/button10"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button7"
android:layout_below="@+id/button7"
android:text="@string/no0" />
<Button
android:id="@+id/button13"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button10"
android:layout_below="@+id/button10"
android:text="@string/bolu" />
<Button
android:id="@+id/button16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button13"
android:layout_alignRight="@+id/button14"
android:layout_below="@+id/button14"
android:layout_marginTop="32dp"
android:textColor="#00FF00"
android:text="@string/sil" />
<Button
android:id="@+id/button4"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/button1"
android:text="@string/no4"/>
<Button
android:id="@+id/button5"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button8"
android:layout_alignLeft="@+id/button8"
android:text="@string/no5" />
</RelativeLayout>
您的活动找不到id为no0、no1等的任何内容,因为在XML文件中,它们有id的button2、button3等。因此,当您尝试将
OnClickListener
设置到按钮时,会出现NullPointerException
因此,与此相反:
Button no2 = (Button)findViewById(R.id.no2);
你需要这个:
Button no2 = (Button)findViewById(R.id.button2);
< > P/>请添加LogCad Nover将在不知道LogCCAT的情况下遍历所有代码并查找可能出现的错误。您可以发布布局XML吗?您应该至少考虑对代码进行分解。这太长了。在重构之前,至少要指出第46行。这是一个NPE,需要2秒钟才能弄清楚。我试过了,但仍然不起作用!你能更新这个问题以反映你现在的情况吗?我添加了新的logcat。顺便说一句,非常感谢,你没有指出第46行。说真的,人们都想帮忙,但你却一次又一次地掉进同一条沟里。我已经纠正了,但问题不同了。我选择了它。非常感谢:)
Button no2 = (Button)findViewById(R.id.button2);