【问题标题】:How to update separate counters dynamically如何动态更新单独的计数器
【发布时间】:2016-03-01 16:02:03
【问题描述】:

我有一个应用程序,目前有 2 个人(“妈妈”和“爸爸”)。每个人都应该有自己的计数器,该计数器独立递增。

我的 XML 代码:

<?xml version="1.0" encoding="utf-8"?>

<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: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="com.jarrall.apps.annoyed.MainActivity">


<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Mom"
        android:id="@+id/textViewMom"
        android:layout_centerHorizontal="true" />

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/bs"
        android:id="@+id/imageView"
        android:layout_below="@+id/textViewMom"
        android:layout_centerHorizontal="true" />

    <LinearLayout
        android:id="@+id/buttons"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_below="@+id/imageView"
        android:layout_centerInParent="true">

        <Button
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:onClick="decrement"
            android:text="-" />

        <TextView
            android:id="@+id/total_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2"
            android:textSize="16sp" />

        <Button
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:onClick="increment"
            android:text="+" />


    </LinearLayout>
</RelativeLayout>

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Dad"
        android:id="@+id/textViewDad"
        android:layout_centerHorizontal="true" />

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/bs"
        android:id="@+id/imageViewDad"
        android:layout_below="@+id/textViewDad"
        android:layout_centerHorizontal="true" />

    <LinearLayout
        android:id="@+id/buttonsDad"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_below="@+id/imageViewDad"
        android:layout_centerInParent="true">

        <Button
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:onClick="decrement"
            android:text="-" />

        <TextView
            android:id="@+id/total_text_view2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2"
            android:textSize="16sp" />

        <Button
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:onClick="increment"
            android:text="+" />


    </LinearLayout>
</RelativeLayout>
</LinearLayout>

我的 Java 代码:

public class MainActivity extends AppCompatActivity {
int counter = 2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}


/**
 * This method is called when the plus button is clicked.
 */
public void increment(View view) {
    counter = counter + 1;
    display(counter);
   /*  displayPrice(counter * 5); */
}

/**
 * This method is called when the minus button is clicked.
 */
public void decrement(View view) {
    counter = counter - 1;
    display(counter);
}

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

我将如何编辑我的代码,以便当为妈妈或爸爸按下按钮并调用 display() 方法时,它会增加/减少相应的 textView(@+id/total_text_view@+id/total_text_view2)。

目前两组按钮只对 mom 下的第一个 textView (@+id/total_text_view) 起作用

【问题讨论】:

  • 这样发布您的问题:sscce.org。多余的代码太多了……

标签: java android xml


【解决方案1】:

做几个函数;

incrementMom()decrementMom()incrementDad()decrementDad()

那么就不要使用android:onClick="decrement",而是使用android:onClick="decrementMom"android:onClick="decrementDad"

【讨论】:

  • 我觉得你可以让变量叫做 'type' ,根据这个变量的值做一些事情,例如 if(type=="DAD") 做一些事情
  • 如果它完成了工作,请随时接受它。不,你不能通过 XML @MinaFawzy
猜你喜欢
  • 1970-01-01
  • 2021-05-23
  • 2023-04-11
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多