在一种公共方法中使用相同的私有方法

时间:2018-08-14 20:35:14

标签: java android private public main-activity

请参见以下代码。我正在创建一个得分保持应用程序,并且已设置它来记录每个团队的某些统计信息。因此,当我为一个团队按下+按钮时,我希望它更新该统计信息,然后为另一支球队更新该统计信息,而没有为第一支球队更新。我还提供了应用程序本身的屏幕截图(请暂时不要上色)。请问有人能够提供帮助吗? Football Score Counter App

所以基本上:如果我在主队下选择任意球选项,我希望它进行更新,并且如果客队获得点球,我希望能够在不对两支球队同时进行更新的情况下进行更新时间。或者只是更新一个团队。这就是它现在正在做的。

Android Studio告诉我,我不能拥有“ private void display(int number)”,因为它与另外一个相匹配。那我该如何区分它们?

非常感谢,我希望我能尽力正确解释它!

public void increment(View view) {
    quantity = quantity + 1;
    display(quantity);
}

/**
 * This method displays the given quantity value on the screen.
 */
private void display(int number) {
    TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view);
    quantityTextView.setText("" + number);
}

/**
 * This method displays the given quantity value on the screen.
 */
private void display(int number) {
    TextView quantityTextView = (TextView) findViewById(R.id.amount_text_view);
    quantityTextView.setText("" + number);
}

我已经对其进行了编辑,以添加正在使用的XML代码的一部分:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        android:layout_weight="1"
        android:background="#4CAF50"
        android:orientation="horizontal">

        <Button
            android:id="@+id/decrement_id"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_marginLeft="10dp"

            android:layout_weight="1"
            android:onClick="decrement"
            android:text="-" />

        <TextView
            android:id="@+id/quantity_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="0"
            android:textColor="#000000"
            android:textSize="20sp" />

        <Button
            android:id="@+id/increment_id"
            android:layout_width="48dp"
            android:layout_height="48dp"

            android:layout_weight="1"
            android:onClick="increment"
            android:text="+" />

        <TextView
            android:id="@+id/freeKick_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:text="FREE KICK"
            android:textColor="#000000"
            android:textSize="16sp" />

        <Button
            android:id="@+id/decrease_id"
            android:layout_width="48dp"
            android:layout_height="48dp"

            android:layout_weight="1"
            android:onClick="decrement"
            android:text="-" />

        <TextView
            android:id="@+id/amount_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="0"
            android:textColor="#000000"
            android:textSize="20sp" />

        <Button
            android:id="@+id/increase_id"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_marginRight="10dp"
            android:layout_weight="1"
            android:onClick="increment"
            android:text="+" />

    </LinearLayout>

所以在这里,我的意思是,两支球队都需要更新任意球,但只有当每支球队获得任意球时才需要更新。因此,当我按下主队的+按钮时,他们将获得任意球。然后,如果客队获得任意球,则为他们按下+按钮。希望事情变得更清楚! :)

2 个答案:

答案 0 :(得分:2)

一种避免在两种方法中重复相似功能的方法是在方法签名中添加另一个参数:

/**
 * This method displays the given quantity value on the screen.
 */
private void display(int number, @IntegerRes int viewId) {
    TextView quantityTextView = (TextView) findViewById(viewId);
    quantityTextView.setText("" + number);
}

然后,您将使用以下方法:

public void increment(View view) {
    quantity = quantity + 1;
    display(quantity, R.id.quantity_text_view);
    display(quantity, R.id.amount_text_view);
}

答案 1 :(得分:0)

为每个增量和减量按钮使用单独的onClick方法。

  

(onClick =“ DecrementQuantity”,onClick =“ IncrementQuantity”,   onClick =“ DecrementFreeKick”,onClick =“ IncrementFreeKick”,   onClick =“ DecrementAmount”,onClick =“ IncrementAmount”)

您不应将同一onClick方法用于多个按钮。每个onClick都会为每个textview管理一个动作。

public void DecrementQuantity(View v) {
        findViewById(R.id.quantity_text_view).setText(Integer.toString(number));
    }