我的应用程序无法在模拟器中工作..请帮助我

时间:2013-08-11 09:56:46

标签: android

这是我希望您完成的代码。 请发现我的错误。 这是一个计算器应用程序的简单代码。 我不确定,但错误可能在代码的按钮部分。 如果你帮我解决这个问题,真的很感激.. 提前谢谢。

package com.iitg.sau_calc;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Cal extends Activity {
Button one, two, thr, fou, fiv, six, sev, eig, nin, zer, add, sub, mul, div, clr, equ;
TextView scr;
int ans=0,fans=0,ca=0,cs=0,cm=0,cd=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cal);
    one=(Button)findViewById(R.id.one);
    two=(Button)findViewById(R.id.two);
    thr=(Button)findViewById(R.id.thr);
    fou=(Button)findViewById(R.id.fou);
    fiv=(Button)findViewById(R.id.fiv);
    six=(Button)findViewById(R.id.six);
    sev=(Button)findViewById(R.id.sev);
    eig=(Button)findViewById(R.id.eig);
    nin=(Button)findViewById(R.id.nin);
    zer=(Button)findViewById(R.id.zer);
    add=(Button)findViewById(R.id.add);
    sub=(Button)findViewById(R.id.sub);
    mul=(Button)findViewById(R.id.mul);
    div=(Button)findViewById(R.id.div);
    clr=(Button)findViewById(R.id.clr);
    equ=(Button)findViewById(R.id.equ);
    scr=(TextView)findViewById(R.id.Screen);


    one.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            ans=ans*10+1;
            scr.setText(ans);
        }
    });

two.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            ans=ans*10+2;
            scr.setText(ans);
        }
    });

thr.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    ans=ans*10+3;
    scr.setText(ans);
}
});

fou.setOnClickListener(new View.OnClickListener() { 

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    ans=ans*10+4;
    scr.setText(ans);
}
});

fiv.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    ans=ans*10+5;
    scr.setText(ans);
}
});

six.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    ans=ans*10+6;
    scr.setText(ans);
}
});

sev.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    ans=ans*10+7;
    scr.setText(ans);
}
});

eig.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    ans=ans*10+8;
    scr.setText(ans);
}
});

nin.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    ans=ans*10+9;
    scr.setText(ans);
}
});

zer.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    ans=ans*10;
    scr.setText(ans);
}
});


add.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Ans();
    ca+=1;
    scr.setText("+");
}
});

sub.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Ans();
    cs+=1;
    scr.setText("-");
}
});

mul.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Ans();
    cm+=1;
    scr.setText("*");
}
});

div.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Ans();
    cd+=1;
    scr.setText("/");
}
});

equ.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Ans();
    scr.setText(fans);
}
});

clr.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    ans=0;
    fans=0;
    ca=0;cm=0;cd=0;cs=0;

    scr.setText("0");
}
});


}


public void Ans(){
if(ca>0)
{
    fans=fans+ans;
    ca=0;
}

else if(cs>0)
{
    fans=fans-ans;
    cs=0;
}

else if(cm>0)
{
    fans=fans*ans;
    cm=0;
}

else if(cd>0)
{
    fans=fans/ans;
    cd=0;
}
else
{
    fans=ans;
    ans=0;
}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.cal, menu);
    return true;
}

}

1 个答案:

答案 0 :(得分:1)

scr是textview,ans是int。你的应用可能会崩溃。

替换此

  scr.setText(ans);

通过

  scr.setText(String.ValueOf(ans)); 

public static String valueOf(int i)

  

返回int参数的字符串表示形式。

所有

相同

public final void setText (int resid)

resid是一个int值的资源。

textView.setText(resid)查找具有该值的渣油。如果找不到,您将获得ResourceNotFoundException。

您应该使用以下

public final void setText (CharSequence text)

将CharSequence作为参数

http://developer.android.com/reference/android/widget/TextView.html#setText(int)

我可能还有其他错误(可能会导致崩溃)。如果它崩溃了,你发布堆栈跟踪会更好。