Android运行时错误

时间:2014-07-24 18:47:54

标签: android runtime-error

我是初学者Android开发人员,我的代码中存在运行时错误:当我想在模拟器或设备中运行它时会显示"强制关闭"按摩。我的日志在这里:

http://upir.ir/934/1_5e07a.jpg

我的Java代码:

 public class Third extends Activity

 {


protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    Button d = (Button) findViewById(R.id.btn4);

    d.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    dialog();
                }
    });
}

public void dialog(){


    final Dialog dialog = new Dialog(Third.this);
    dialog.setContentView(R.layout.dialog);
    dialog.setTitle("واحد عدد وارد شده را انتخاب کنید");
    dialog.show();
    RadioGroup rg = (RadioGroup) dialog.findViewById(R.id.rg);

    final RadioButton rb1 = (RadioButton) dialog.findViewById(R.id.rb1);
    final RadioButton rb2 = (RadioButton) dialog.findViewById(R.id.rb2);
    rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {


        @Override
        public void onCheckedChanged(RadioGroup arg0, int arg1) {
            if(rb1.isChecked()) {
                dialog.dismiss();
                Button t = (Button)findViewById(R.id.btn5);
                t.setOnClickListener(new OnClickListener() {
                    public void onClick(View arg0) {
                    EditText ft1 = (EditText)findViewById(R.id.f3);
    TextView foot = (TextView)findViewById(R.id.foot);
    TextView mile = (TextView)findViewById(R.id.mile);
    TextView inch = (TextView)findViewById(R.id.inch);
    TextView yard = (TextView)findViewById(R.id.yard);
    TextView  mm = (TextView)findViewById(R.id.millymeter);
    TextView  dm = (TextView)findViewById(R.id.decimeter);
    TextView  mim = (TextView)findViewById(R.id.micrometer);
    TextView  nm = (TextView)findViewById(R.id.nanometer);
    TextView  hand = (TextView)findViewById(R.id.hand);
    TextView iron = (TextView)findViewById(R.id.iron);
    TextView point = (TextView)findViewById(R.id.point);
    if(ft1.getText().toString().length() == 0 ){return;}
    int first = Integer.parseInt(ft1.getText().toString());
    double equal = first *0.0328;   
    DecimalFormat formatf = new DecimalFormat("#.####");
    String x = formatf.format(equal)+" فوت";
    foot.setText(x);
    first = Integer.parseInt(ft1.getText().toString());
    equal = first * 0.000005;   
    DecimalFormat formatm = new DecimalFormat("#.####");
    x = formatm .format(equal)+"مایل";
    mile.setText(x);
    equal = first * 0.393;  
    DecimalFormat formati = new DecimalFormat("#.####");
    x = formati.format(equal)+"اینچ";
    inch.setText(x);
    equal = first * 0.0109; 
    DecimalFormat formaty = new DecimalFormat("#.#####");
    x = formaty.format(equal)+"یارد";
    yard.setText(x);
    equal = first / 10; 
    DecimalFormat formatmi = new DecimalFormat("#.##");
    x = formatmi.format(equal)+"دسی متر";
    dm.setText(x);
    int equalmm = first * 10;   
    x = equalmm+"میلی متر";
    mm.setText(x);
    int equalm = first * 10000; 
    x = equalm+"میکرو متر";
    mim.setText(x);
    int equaln = first * 10000000;  
    x = equaln + "نانو متر";
    nm.setText(x);
    equal = first * 0.098;  
    DecimalFormat formath = new DecimalFormat("#####.#####");
    x = formath.format(equal)+"هَند";
    hand.setText(x);
    equal = first * 19;
    x = equal+"آیرون";
    iron.setText(x);
    equal = first * 28;
    x = equal+"پوینت";
    point.setText(x);
}

        });
        }

3 个答案:

答案 0 :(得分:0)

在使用findViewById()方法检索视图之前,您需要首先使用布局资源来扩充活动。如果没有布局,则没有可能找到的视图。

答案 1 :(得分:0)

你错过了重要的一部分。您需要向Activity添加一个视图,以便找到该视图的元素,例如您尝试实例化的Button

OnCreate方法中添加以下内容:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.the_xml_file); //Here add the xml file with the view you want to show
    Button d = (Button) findViewById(R.id.btn4);

    d.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                    dialog();
                }
            });
}

答案 2 :(得分:0)

你的super.onCreate(savedInstanceState)之后;你在设置内容视图吗?

e.g。

的setContentView(R.layout.nameofxmlfilehere);