我想在不刷新活动的情况下更新活动中的分数。
我的代码低于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;
但我真的坚持给予分数自动更新。
谢谢&amp;的问候,
答案 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 +"");
}
}
});
....
}