![](/img/trans.png)
[英]Where is ReactInstanceManager in my MainActivity.java file?
[英]my button cannot find a method in the MainActivity.java file
嗨,我是一名嘗試制作基本計算器應用程序的初學者android開發人員
這是來自content_main.xml文件夾的布局代碼:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main" tools:context=".MainActivity">
<TextView
android:id="@+id/displayer"
android:text="Hello World!"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="113dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-"
android:id="@+id/minus"
android:onClick="subtract"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/displayer"
android:layout_toStartOf="@+id/displayer"
android:layout_marginRight="39dp"
android:layout_marginEnd="39dp" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="add"
android:text="+"
android:id="@+id/plus"
android:layout_below="@+id/minus"
android:layout_alignLeft="@+id/minus"
android:layout_alignStart="@+id/minus" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:onClick="setNumber"
android:tag="1"
android:id="@+id/one"
android:layout_above="@+id/plus"
android:layout_toRightOf="@+id/plus"
android:layout_toEndOf="@+id/plus" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="setNumber"
android:text="4"
android:id="@+id/four"
android:tag="4"
android:layout_alignTop="@+id/plus"
android:layout_toRightOf="@+id/plus"
android:layout_toEndOf="@+id/plus" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="setNumber"
android:text="2"
android:id="@+id/two"
android:tag="2"
android:layout_above="@+id/four"
android:layout_toRightOf="@+id/one"
android:layout_toEndOf="@+id/one" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="setNumber"
android:text="3"
android:tag="3"
android:id="@+id/three"
android:layout_above="@+id/five"
android:layout_toRightOf="@+id/two"
android:layout_toEndOf="@+id/two" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="setNumber"
android:text="5"
android:tag="5"
android:id="@+id/five"
android:layout_below="@+id/two"
android:layout_alignLeft="@+id/two"
android:layout_alignStart="@+id/two" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="setNumber"
android:text="6"
android:tag="6"
android:id="@+id/six"
android:layout_above="@+id/nine"
android:layout_toRightOf="@+id/five"
android:layout_toEndOf="@+id/five" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="setNumber"
android:text="7"
android:tag="7"
android:id="@+id/seven"
android:layout_below="@+id/plus"
android:layout_toRightOf="@+id/plus"
android:layout_toEndOf="@+id/plus" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="setNumber"
android:text="8"
android:tag="8"
android:id="@+id/eight"
android:layout_below="@+id/five"
android:layout_alignLeft="@+id/five"
android:layout_alignStart="@+id/five" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="setNumber"
android:text="9"
android:tag="9"
android:id="@+id/nine"
android:layout_below="@+id/five"
android:layout_alignLeft="@+id/six"
android:layout_alignStart="@+id/six" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:id="@+id/equal"
android:onClick="equal"
android:layout_below="@+id/plus"
android:layout_alignLeft="@+id/plus"
android:layout_alignStart="@+id/plus" />
</RelativeLayout>
這是MainActivity文件夾中的我的活動:
package com.example.android.calculator;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
private int firstNumber = -1;
private int secondNumber = -1;
private int operation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
private void equal(View view){
TextView displayerTextView=(TextView)
findViewById(R.id.displayer);
if (operation == 0) {
displayerTextView.setText(firstNumber+secondNumber);
}else if (operation == 1){
displayerTextView.setText(firstNumber-secondNumber);
}else{
displayerTextView.setText("error");
}
}
private void add(View view){
operation = 0;
}
private void subtract(View view){
operation = 1;
}
private void setNumber(View view){
if (firstNumber == -1) {
firstNumber = Integer.parseInt((String)view.getTag());
}else{
secondNumber = Integer.parseInt((String)view.getTag());
}
}
}
當我在計算器應用程序中單擊3按鈕時,出現此錯誤,是此錯誤:
java.lang.IllegalStateException: Could not find a method setNumber(View) in the activity class com.example.android.calculator.MainActivity for onClick handler on view class android.widget.Button with id 'three'
因為您的方法是private
。 改變public
。
您可以在這里找到更多信息http://developer.android.com/reference/android/widget/Button.html
它應該是public void setNumber(View view){
對於上述問題,請更改
private void setNumber(View view){
if (firstNumber == -1) {
firstNumber = Integer.parseInt((String)view.getTag());
}else{
secondNumber = Integer.parseInt((String)view.getTag());
}
}
至
public void setNumber(View view){
if (firstNumber == -1) {
firstNumber = Integer.parseInt((String)view.getTag());
}else{
secondNumber = Integer.parseInt((String)view.getTag());
}
}
為避免使用加法和減法在代碼中出現類似錯誤,請將這些功能也從private
更改為public
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.