簡體   English   中英

Android活動:輸入數字,按下按鈕,從xml傳遞到類

[英]Android Activity: Input number, press button, pass from the xml to the class

你好!
嘗試在EditText字段中輸入數字,請按下calc531按鈕,並使該數字到達inputDouble變量。

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" />

Java的

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_five);

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

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" />

在您的活動中,您應該編寫方法inputField(View v)

    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);
      }
   }

您兩次將onClickListener調用到同一按鈕,並且僅實現一次。

如果您已經在具有Button的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...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM