приложение продолжает падать - PullRequest
0 голосов
/ 10 марта 2012

эй, я новичок в программировании, поэтому я подумал, что просто сделаю простой конвертер c в f, но он продолжает падать на эмуляторе, прежде чем открыть его, кто-нибудь может понять почему? Я знаю, что коды, вероятно, все неправильно, но это единственный способ, которым я мог думать об этом

package com.jamie.convert;

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

public class ConvertorActivity extends Activity implements OnClickListener {

    TextView textout1;
    EditText textIn1;
    Button convert;
    int x=Integer.parseInt(textIn1.getText().toString());
    double fahrenheit = 1.8*x;



    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        convert = (Button) findViewById(R.id.convert);
        textIn1=(EditText) findViewById(R.id.input);
        textout1=(TextView) findViewById(R.id.output);
        convert.setOnClickListener((android.view.View.OnClickListener)this);

    }

    @Override
    public void onClick(View v) {
        if(v.getId() == R.id.convert) {
            textout1.setText(""+fahrenheit);
        }


    }
}

Ответы [ 3 ]

0 голосов
/ 10 марта 2012
int x=Integer.parseInt(textIn1.getText().toString());

Вышеуказанная строка будет выполнена сразу же после запуска Activity. На данный момент textIn1 будет null.

Также эта строка не должна быть там таким образом ...

double fahrenheit = 1.8*x;

Заменить эти строки на ...

int x;
double fahrenheit;

... и затем измените метод onClick() на ...

@Override
public void onClick(View v) {
    if(v.getId() == R.id.convert) {
        x = Integer.parseInt(textIn1.getText().toString());
        fahrenheit = x * 1.8 + 32
        textout1.setText(String.valueOf(fahrenheit));
    }
}
0 голосов
/ 10 марта 2012

используйте этот код, вместо этого вы получите ответ

TextView textout1;
EditText textIn1;
Button convert;
static int x;
//int x=Integer.parseInt(textIn1.getText().toString());
//double fahrenheit = 1.8*x;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    convert = (Button) findViewById(R.id.button1);
    textIn1=(EditText) findViewById(R.id.editText1);
    textout1=(TextView) findViewById(R.id.textView1);
    convert.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            x=Integer.parseInt(textIn1.getText().toString());
            double fahrenheit = 1.8*x;
            textout1.setText(""+fahrenheit);
        }
    });

}

Это произойдет из-за того, что ваш int x не получит никакого значения из текста редактирования.

0 голосов
/ 10 марта 2012

попробуйте String.valueOf(fahrenheit); вместо фаренгейта в вашем клике

также переместите

int x=Integer.parseInt(textIn1.getText().toString());

к методу onclick

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...