【问题标题】:onclick i get nullonclick 我得到空
【发布时间】:2011-08-01 03:36:44
【问题描述】:

好的,我希望我的脚本在第一次点击时给我一个答案,但它需要我多次点击。

`package com.example;

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

public class EquationsActivity extends Activity {
    EditText field1;
    EditText field2;
    EditText field3;
    EditText field4;
    TextView text1;
    TextView text2;
    TextView text3;
    String fnum;
    String snum;
    String tnum;
    String ftnum;
    String RAnswer;
    String Answer;
    String answer;
    double num7;
    double num8;
    double num9;
    double num10;
    double num5;
double num4;
double num3;
double num6;
double num1;
double num2;
double num11;
double num12;
double num13;
double num14;
double num15;
String num16;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button button1 = (Button) findViewById(R.id.button1);
    field1 = (EditText) findViewById(R.id.tf1);
    field2 = (EditText) findViewById(R.id.tf2);
    field3 = (EditText) findViewById(R.id.tf3);
    field4 = (EditText) findViewById(R.id.tf4);
    text1 = (TextView) findViewById(R.id.text1);
    text2 = (TextView) findViewById(R.id.text2);
    text3 = (TextView) findViewById(R.id.text3);
    button1.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            text1.setText(RAnswer);
            text2.setText(Answer);
            text3.setText(answer + "," + num16);
            fnum = field1.getText().toString();
            snum = field2.getText().toString();
            tnum = field3.getText().toString();
            ftnum = field4.getText().toString();
            RAnswer = Double.toString(num7);
            Answer = Double.toString(num11);
            answer = Double.toString(num14);
            num16 = Double.toString(num15);
            num1 = Double.parseDouble(fnum);
            num2 = Double.parseDouble(snum);
            num3 = Double.parseDouble(tnum);
            num4 = Double.parseDouble(ftnum);
            num5 = num2 - num1;
            num6 = num4 - num3;
            num7 = num6 / num5;

            num8 = Math.pow(num2-num1,2);
            num9 = Math.pow(num4-num3, 2);
            num10 = num8+num9;
            num11 = Math.sqrt(num10);

            num12 = num1+num2;
            num13 = num3+num4;
            num14 = num12/2;
            num15 = num13/2;
        }
});

} }`

【问题讨论】:

  • 如果以下解决方案有帮助,请考虑将 at 标记为“已接受”。

标签: android


【解决方案1】:

您确定需要点击几下吗?那里有一些数学可能需要一些时间。要调试,请在 onClick 方法的开头添加此行:

Log.i("button", "onClick called");

现在,当您选择按钮时,如果此日志消息显示在您的 LogCat 中,则该按钮正在响应第一次单击。

编辑:

您是否尝试过移动一些方法组件?

    @Override
    public void onClick(View v) {
        fnum = field1.getText().toString();
        snum = field2.getText().toString();
        tnum = field3.getText().toString();
        ftnum = field4.getText().toString();

        num1 = Double.parseDouble(fnum);
        num2 = Double.parseDouble(snum);
        num3 = Double.parseDouble(tnum);
        num4 = Double.parseDouble(ftnum);
        num5 = num2 - num1;
        num6 = num4 - num3;
        num7 = num6 / num5;

        num8 = Math.pow(num2-num1,2);
        num9 = Math.pow(num4-num3, 2);
        num10 = num8+num9;
        num11 = Math.sqrt(num10);

        num12 = num1+num2;
        num13 = num3+num4;
        num14 = num12/2;
        num15 = num13/2;

        RAnswer = Double.toString(num7);
        Answer = Double.toString(num11);
        answer = Double.toString(num14);
        num16 = Double.toString(num15);
        text1.setText(RAnswer);
        text2.setText(Answer);
        text3.setText(answer + "," + num16);
    }

【讨论】:

  • 我已经尝试过,但它仍然需要我多次点击。是的,它是多次点击,而不仅仅是等待。第一次单击我收到一条消息,说第一次单击时为 null,null。在第二次点击我得到 0 然后在第三次点击我得到答案。
  • @daniel, null,null 对第一次点击有意义,因为你从不初始化num16answer0,0 对第二次单击有意义,因为您正在从尚未初始化的双精度数创建字符串(因此它们默认为 0)。之后,由于您的变量已经初始化,第三次点击有效。所以最后,按钮被点击了,你只需要重新考虑算法。
  • @daniel,试试我上面建议的算法。
猜你喜欢
  • 2021-03-31
  • 2012-07-19
  • 2021-11-25
  • 1970-01-01
  • 1970-01-01
  • 2012-03-12
  • 2014-01-22
  • 2016-02-17
相关资源
最近更新 更多