[英]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.