gpt4 book ai didi

java - 添加参数 do 方法后应用程序崩溃

转载 作者:行者123 更新时间:2023-12-01 13:53:51 27 4
gpt4 key购买 nike

我的简单计算器应用程序出现问题:

当我有这样的方法时

public void WypiszWartoscPrzycisku(View sender)

它工作正常,一切都很好,但是当我添加 float 时,我的意思是:

public void WypiszWartoscPrzycisku(View sender, float num1)

它崩溃了。我不确定我应该提供更多什么,因为我没有对 num1 执行任何操作,但应用程序仍然崩溃。

XML(抱歉,我的母语不是英语,所以很多东西我都用我的语言命名)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<Button
android:id="@+id/button_AC"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/AC"
android:onClick="WypiszWartoscPrzycisku"/>

<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint="@string/wynik"
android:inputType="number" >

<requestFocus />
</EditText>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Button
android:id="@+id/button_Siedem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/siedem"
android:onClick="WypiszWartoscPrzycisku"/>

<Button
android:id="@+id/button_Osiem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/osiem"
android:onClick="WypiszWartoscPrzycisku" />

<Button
android:id="@+id/button_Dziewiec"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/dziewiec"
android:onClick="WypiszWartoscPrzycisku" />


<Button
android:id="@+id/button_Plus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/plus"
android:onClick="WypiszWartoscPrzycisku"/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Button
android:id="@+id/button_Cztery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/cztery"
android:onClick="WypiszWartoscPrzycisku"/>

<Button
android:id="@+id/button_Piec"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/piec"
android:onClick="WypiszWartoscPrzycisku"/>

<Button
android:id="@+id/button_Szesc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/szesc"
android:onClick="WypiszWartoscPrzycisku" />

<Button
android:id="@+id/button_Minus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/minus"
android:onClick="WypiszWartoscPrzycisku" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Button
android:id="@+id/button_Jeden"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/jeden"
android:onClick="WypiszWartoscPrzycisku"/>

<Button
android:id="@+id/button_Dwa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/dwa"
android:onClick="WypiszWartoscPrzycisku"/>

<Button
android:id="@+id/button_Trzy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/trzy"
android:onClick="WypiszWartoscPrzycisku" />

<Button
android:id="@+id/button_Mnozenie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/mnozenie"
android:onClick="WypiszWartoscPrzycisku" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Button
android:id="@+id/button_Zero"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/zero"
android:onClick="WypiszWartoscPrzycisku"/>

<Button
android:id="@+id/button_Kropka"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/kropka" />

<Button
android:id="@+id/buttonRownasie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/rownasie"
android:onClick="WypiszWartoscPrzycisku"/>

<Button
android:id="@+id/button_dzielenie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/dzielenie"
android:onClick="WypiszWartoscPrzycisku" />
</LinearLayout>

</LinearLayout>

编辑:

感谢@beworker 和@Raghunandan 的回答。我得到它。我虽然添加参数 do 方法将解决我的主要问题。我的代码是(改为英文名) 开关 (bt.getId()){

    case R.id.button_AC:
display.setText("");
break;

case R.id.button_Plus:
float num1 = Float.parseFloat(actualText.toString());
display.setText("");
break;

case R.id.buttonEquals:
float num2 = Float.parseFloat(actualText.toString());
float num3 = num1+num2;
String result = Float.toString(num3);
display.setText(wynik);

它说,在最后一个案例 R.id.Equals 中,num1 未声明。谢谢:)

最佳答案

看起来您的布局 xml 中有一个具有以下属性的按钮

  android:onClick="WypiszWartoscPrzycisku"

所以你需要有

  public void WypiszWartoscPrzycisku(View sender) // method signature should be like this
{

}

android:onClick

单击 View 时要调用的 View 上下文中的方法的名称。该名称必须对应于一种仅采用一个 View 类型参数的公共(public)方法。例如,如果您指定 android:onClick="sayHello",则必须声明上下文(通常是您的 Activity)的 public void sayHello(View v) 方法

http://developer.android.com/reference/android/view/View.html#attr_android:onClick

如果你有这个

 public void WypiszWartoscPrzycisku(View sender, float num1)

您的 Activity 没有 WypiszWartoscPrzycisku(View sender) 这是必须的,因为您有 android:onClick="WypiszWartoscPrzycisku" 并且当您单击按钮时会出现异常在 Activity 中找不到方法 WypiszWartoscPrzycisku(View)

编辑:

    case R.id.button_Plus:
float num1 = Float.parseFloat(actualText.toString()); // declared and initialized here
display.setText("");
break;

但是你在这里使用它

    case R.id.buttonEquals:
float num2 = Float.parseFloat(actualText.toString());
float num3 = num1+num2;

您需要将 num1 声明为类成员

编辑2:

   case R.id.buttonEquals: 
// check if you have a button with id R.id.buttonEquals

关于java - 添加参数 do 方法后应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754552/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com