当我尝试运行它时,我的应用程序不断崩溃(新增功能)

时间:2016-10-05 23:21:30

标签: java android

public class MainScreen extends AppCompatActivity {
private double mmiles,mgallons = 1;
EditText miles;
EditText gallons;
Button execute;
TextView fin;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_screen);







    execute.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view){
            miles = (EditText) findViewById(R.id.editTextMiles);
            gallons = (EditText) findViewById(R.id.editTextGallons);
            mmiles = Double.parseDouble(miles.getText().toString());
            execute= (Button) findViewById(R.id.execute);
            fin= (TextView) findViewById(R.id.fini);
            String numberAsString = new Double(mmiles).toString();
            fin.setText(numberAsString);
        }
    });
}}

每次启动应用程序时都会崩溃。我试图将EditText中的数字存储到TextView中。我是java编程的新手,所以我很难搞清楚这一点。

编辑:似乎仍然没有显示任何内容。这就是我到目前为止所拥有的:

      execute.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view){
            miles = (EditText) findViewById(R.id.editTextMiles);
            gallons = (EditText) findViewById(R.id.editTextGallons);
            mmiles = Double.parseDouble(miles.getText().toString());
            String TextAsString = String.valueOf(mmiles);
            fin= (TextView) findViewById(R.id.fini);

            fin.setText(TextAsString);
        }
    });

1 个答案:

答案 0 :(得分:0)

为按钮使用不同的名称,我不会想到"执行"是一个保留的关键字,但它可能意味着以后的其他事情(使用AsyncTask),因此它首先会引起混淆

您需要在execute.setOnClickListener...行之前填写此行:

execute = (Button) findViewById(R.id.execute);

原因是,直到那一刻,你告诉编译器的所有内容是执行一个按钮,但是它并不知道 按钮。 #39;重新引用。

另外,将String numberAsString = new Double(mmiles).toString();更改为String numberAsString = String.valueOf(mmiles);