如何按计划更新总分

时间:2013-06-21 08:47:09

标签: android

我想在不刷新活动的情况下更新活动中的分数。

我的代码低于1 TextView和3 Buttons。

<TextView 
    android:id="@+id/score"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="0" />
<Button
    android:id="@+id/q1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<Button
    android:id="@+id/q2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<Button
    android:id="@+id/q3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

Upadte得分活动:

final TextView TxtScore = (TextView) findViewById(R.id.score);  

final int UpdateScore = i.getExtras().getInt("UpdateScore");

final Button q1 = (Button) findViewById(R.id.q1);
final Button q2 = (Button) findViewById(R.id.q2);
final Button q3 = (Button) findViewById(R.id.q3);

q1.setOnClickListener(new OnClickListener() {
        public void onClick(View v){

        if(answer.equals("correct")
        {

           TxtScore.setText(Integer.toString(UpdateScore + 1));
        }   
        else
        {

           TxtScore.setText(Integer.toString(UpdateScore - 1));
        }
     }
});

q2.setOnClickListener(new OnClickListener() {
        public void onClick(View v){

        if(answer.equals("correct")
        {

           TxtScore.setText(Integer.toString(UpdateScore + 1));
        }   
        else
        {

           TxtScore.setText(Integer.toString(UpdateScore - 1));
        }
     }
});

q3.setOnClickListener(new OnClickListener() {
        public void onClick(View v){

        if(answer.equals("correct")
        {

           TxtScore.setText(Integer.toString(score + 1));
        }   
        else
        {

           TxtScore.setText(Integer.toString(UpdateScore - 1));
        }
     }
});

上面的代码不能像我需要的那样工作,它在onClick时对TextView进行单独更新..但我想自动更新分数,示例如下:

以前的进位得分示例为:int score = 10;

  • 当q1按“正确”时。分数将更新为11;
  • 当q2按“不正确”时。分数将更新为10
  • 当q3按下“不正确”时。分数将更新为9
像这样的东西。

但我真的坚持给予分数自动更新。

谢谢&amp;的问候,

1 个答案:

答案 0 :(得分:4)

只有上帝知道该代码应该做什么,错误是巨大的。

无论如何要这样做:

final int score = 0;更改为int score = 0;

将每int x = score + 1;更改为score = score + 1;

将每int x = score - 1;更改为score = score - 1;

将每UpdateScore.setText(Integer.toString(x));更改为UpdateScore.setText(score +"");

...

等等,你在onCreate()方法中拥有所有这些吗?如果是这样,将所有变量声明移到它之外,使它们成为类/活动级别。

EDIT ====

public class MainActivity extends Activity {

private TextView TxtScore = null;
private Button q1 = null;
private Button q2 = null;
private Button q3 = null;

private int score = 10; 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...

    TxtScore = (TextView) findViewById(R.id.score);
    q1 = (Button) findViewById(R.id.q1);
    q2 = (Button) findViewById(R.id.q2);
    q3 = (Button) findViewById(R.id.q3);

    /* And your onCLickListeners right here with the changes I pointed out. */

    q1.setOnClickListener(new OnClickListener() {
        public void onClick(View v){

            if(answer.equals("correct") {
                TxtScore.setText(++score +"");
            } else {
                TxtScore.setText(--score +"");
            }
        }
    });

    ....

}