Android 测验申请?
我正在为我的项目构建一个测验应用程序。对于不同的问题,我有不同的活动。我用单选按钮回答。请问如何设置将分数添加到初始分数的计数器?我应该在哪里定义计数器?我如何在每次点击不同的布局时得到响应? 这是我的Android 测验申请?,android,Android,我正在为我的项目构建一个测验应用程序。对于不同的问题,我有不同的活动。我用单选按钮回答。请问如何设置将分数添加到初始分数的计数器?我应该在哪里定义计数器?我如何在每次点击不同的布局时得到响应? 这是我的 package com.example.android.test; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import
package com.example.android.test;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
enter code here
public class page1 extends AppCompatActivity {
@Override
int score = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_page1);
}
public void pageTwo(View view) {
Intent i = new Intent(this,page2.class);
startActivity(i);
}
public void ans(View view)
{
Toast.makeText(this,score,Toast.LENGTH_SHORT).show();
}
}
解决方案1: 使用SharedReferences存储一个整数作为分数:
SharedPreferences sp = getSharedPreferences("data", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("score", score);
editor.apply();
要在其他活动中获得分数,请执行以下操作:
SharedPreferences sp = getSharedPreferences("data", Activity.MODE_PRIVATE);
int score = sp.getInt("score", 0); //0 for default if score do not exist.
int score = getIntExtra("extra", 0); //0 for default if score do not exist.
但是,即使用户退出应用程序,该变量仍将存在
解决方案2:
在活动之间传递数据:
Intent i = new Intent(ActivityName.this, NewActivityName.class);
i.putExtra("extra", score);
startActivity(i);
在新活动中:
SharedPreferences sp = getSharedPreferences("data", Activity.MODE_PRIVATE);
int score = sp.getInt("score", 0); //0 for default if score do not exist.
int score = getIntExtra("extra", 0); //0 for default if score do not exist.
使用此方法,如果用户退出应用程序,您将不会保存分数。我建议您做一些其他事情,您不想为每个问题创建一个全新的活动。创建单个活动并使用extra(参见我的答案)获取字符串(疑问句,答案1,2,3,4..)和int(正确的选择),这样您就可以通过添加新问题轻松更新项目。你也可以让问题的顺序是随机的,这样用户就不会记住所有的问题。你能想象每个问题都有一个活动的答案工作室结构会是什么样子吗。哎呀。更进一步……使用firebase。然后把问题拉进去,带上答案,带上可能的答案。老实说应该很容易