Java Android活动:输入数字,按下按钮,从xml传递到类

Java Android活动:输入数字,按下按钮,从xml传递到类,java,android,android-studio,android-edittext,user-input,Java,Android,Android Studio,Android Edittext,User Input,你好! 尝试向EditText字段输入一个数字,按下Calc531按钮,并使该数字进入inputDouble变量 xml: logcat错误: java.lang.IllegalStateException: Could not find a method squat1RMinputField(View) ......... Caused by: java.lang.NoSuchMethodException: inputField [class android.view.View] 任何帮助

你好!
尝试向EditText字段输入一个数字,按下Calc531按钮,并使该数字进入inputDouble变量

xml:

logcat错误:

java.lang.IllegalStateException: Could not find a method squat1RMinputField(View)
.........
Caused by: java.lang.NoSuchMethodException: inputField [class android.view.View]

任何帮助都将不胜感激

您已在xml文件中将方法名称指定为inputField。您应该在活动中实现相同的方法

方法1

public void inputField (View v)
{
  textHold = (EditText) findViewById(R.id.inputField);
            stringHold = textHold.getText().toString();
            inputDouble = Double.parseDouble(stringHold);
}
删除onclick方法

方法2

Button calcButton = (Button)findViewById(R.id.calcBtn);
calcButton.setOnClickListener(calcBtn);
其中calcBtn是您的onClickListener,并从您的xml中删除
android:onClick=“inputField”
行。

您的xml应该是:

<EditText
    android:inputType="numberDecimal"
    android:id="@+id/inputField"
    android:layout_below="@+id/title5"/>

<Button
    style="?android:attr/buttonStyleSmall"
    android:text="Calculate"
    android:id="@+id/calcBtn"
android:onClick="inputField" />

您将对同一按钮调用onClickListener两次,并且只实现一次

如果您已经在具有
按钮的xml中定义了
android:onClick=”“inputField”“
,那么您只需要在活动中实现
inputField
方法

public void inputField(View v){
    textHold = (EditText) findViewById(R.id.inputField);
    stringHold = textHold.getText().toString();
    inputDouble = Double.parseDouble(stringHold);
}

并从您的
onCreate()
方法中删除
View.OnClickListener calcButton…

谢谢@Apurva!这让我有了95%的成功率,但我不得不添加“viewv”方法头,它成功了。谢谢Alex!现在看起来很简单,在过去的两个小时里我一直在埋头苦干@杰克:一点也不。我记得我是如何开始的,我理解你的问题,祝你好运!)嗨,普里西!我从你的解决方案中退了一步,我没有使用“方法2”,而是保留了安卓:onClick,但你的方法正是我的方法,现在它可以工作了。干杯@jackEarlyDays方法1正是您想要的答案;)
<EditText
    android:inputType="numberDecimal"
    android:id="@+id/inputField"
    android:layout_below="@+id/title5"/>

<Button
    style="?android:attr/buttonStyleSmall"
    android:text="Calculate"
    android:id="@+id/calcBtn"
android:onClick="inputField" />
    public class MainActivity extends Activity{
      @Override
      protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_five);
      }

      //Your method to handle click
      public void inputField (View v){  
      textHold = (EditText) findViewById(R.id.inputField);
                stringHold = textHold.getText().toString();
                inputDouble = Double.parseDouble(stringHold);
      }
   }
public void inputField(View v){
    textHold = (EditText) findViewById(R.id.inputField);
    stringHold = textHold.getText().toString();
    inputDouble = Double.parseDouble(stringHold);
}