java - 以编程方式在表中添加新行
问题描述
当用户每天完成所有迷你游戏时,我正在尝试解决创建新行的问题。
代码应该将今天的分数保存到变量(我正在使用 Sharedpreferences),如果前一行的值不同于零,则将此变量保存到下一行。 目标是用户可以跟踪他的进度。
我所做的是将所有 4 场比赛的分数保存到一行,并保存今天的日期。我确信像 rtsPointsView1,2,3 等这些多个变量是无用的,我可以用更有效的方式编写它,但我不知道如何。
如何创建正确显示用户进度的表?
MyProgressActivity.java
package com.pracainzynierska.inzynierka;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.AssetManager;
import android.graphics.Typeface;
import android.os.Bundle;
import android.widget.TextView;
import com.pracainzynierska.inzynierka.R;
import java.util.Locale;
public class MyProgressActivity extends AppCompatActivity {
TextView usernameView, rtsPointsView1, mcPointsView1, gPointsView1, fttPointsView1, dateView1, totalScoreView, myProgressView,
rtsPointsView2, mcPointsView2, gPointsView2, fttPointsView2, dateView2,
rtsPointsView3, mcPointsView3, gPointsView3, fttPointsView3, dateView3,
rtsPointsView4, mcPointsView4, gPointsView4, fttPointsView4, dateView4,
rtsPointsView5, mcPointsView5, gPointsView5, fttPointsView5, dateView5,
rtsPointsView6, mcPointsView6, gPointsView6, fttPointsView6, dateView6,
rtsPointsView7, mcPointsView7, gPointsView7, fttPointsView7, dateView7;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_progress);
String user = getIntent().getStringExtra("username");
usernameView = findViewById(R.id.username_myprogress);
usernameView.setText("" + user);
//region findViewById region
rtsPointsView1 = findViewById(R.id.rts_score_1);
mcPointsView1 = findViewById(R.id.mc_score_1);
gPointsView1 = findViewById(R.id.g_score_1);
fttPointsView1 = findViewById(R.id.ftt_score_1);
dateView1 = findViewById(R.id.date);
rtsPointsView2 = findViewById(R.id.rts_score_2);
mcPointsView2 = findViewById(R.id.mc_score_2);
gPointsView2= findViewById(R.id.g_score_2);
fttPointsView2 = findViewById(R.id.ftt_score_2);
dateView2 = findViewById(R.id.date2);
rtsPointsView2 = findViewById(R.id.rts_score_2);
mcPointsView2 = findViewById(R.id.mc_score_2);
gPointsView2 = findViewById(R.id.g_score_2);
fttPointsView2 = findViewById(R.id.ftt_score_2);
dateView2 = findViewById(R.id.date2);
rtsPointsView3 = findViewById(R.id.rts_score_3);
mcPointsView3 = findViewById(R.id.mc_score_3);
gPointsView3 = findViewById(R.id.g_score_3);
fttPointsView3 = findViewById(R.id.ftt_score_3);
dateView3 = findViewById(R.id.date3);
rtsPointsView4 = findViewById(R.id.rts_score_4);
mcPointsView4 = findViewById(R.id.mc_score_4);
gPointsView4 = findViewById(R.id.g_score_4);
fttPointsView4 = findViewById(R.id.ftt_score_4);
dateView4 = findViewById(R.id.date4);
rtsPointsView5 = findViewById(R.id.rts_score_5);
mcPointsView5 = findViewById(R.id.mc_score_5);
gPointsView5 = findViewById(R.id.g_score_5);
fttPointsView5 = findViewById(R.id.ftt_score_5);
dateView5 = findViewById(R.id.date5);
rtsPointsView6 = findViewById(R.id.rts_score_6);
mcPointsView6 = findViewById(R.id.mc_score_6);
gPointsView6 = findViewById(R.id.g_score_6);
fttPointsView6 = findViewById(R.id.ftt_score_6);
dateView6 = findViewById(R.id.date6);
rtsPointsView7 = findViewById(R.id.rts_score_7);
mcPointsView7 = findViewById(R.id.mc_score_7);
gPointsView7 = findViewById(R.id.g_score_7);
fttPointsView7 = findViewById(R.id.ftt_score_7);
dateView7 = findViewById(R.id.date7);
totalScoreView = findViewById(R.id.totalScoreView);
myProgressView = findViewById(R.id.myProgressView);
// endregion findViewById region
SharedPreferences preferences = this.getSharedPreferences(usernameView.getText().toString(), Context.MODE_PRIVATE);
int rts_score = preferences.getInt("rts_score",0);
int mc_score = preferences.getInt("mc_score",0);
int g_score = preferences.getInt("g_score",0);
int ftt_score = preferences.getInt("ftt_score",0);
int dailyChallengeScore = preferences.getInt("dailychallenge_score",0);
int total_score = rts_score + mc_score + g_score + ftt_score + dailyChallengeScore;
String rts_date = preferences.getString("date","-");
AssetManager am = getApplicationContext().getAssets();
Typeface logoFont = Typeface.createFromAsset(am, String.format(Locale.ENGLISH, "fonts/%s","FjallaOne-Regular.ttf"));
Typeface myProgressFont = Typeface.createFromAsset(am, String.format(Locale.ENGLISH, "fonts/%s","Montserrat-Regular.ttf"));
myProgressView.setTypeface(logoFont);
myProgressView.setText("My Progress");
//region setTypeface & setText
rtsPointsView1.setTypeface(myProgressFont);
rtsPointsView1.setText("" + rts_score);
mcPointsView1.setTypeface(myProgressFont);
mcPointsView1.setText("" + mc_score);
gPointsView1.setTypeface(myProgressFont);
gPointsView1.setText("" + g_score);
fttPointsView1.setTypeface(myProgressFont);
fttPointsView1.setText("" + ftt_score);
dateView1.setTypeface(myProgressFont);
dateView1.setText("" + rts_date);
rtsPointsView2.setTypeface(myProgressFont);
rtsPointsView2.setText("" + rts_score);
mcPointsView2.setTypeface(myProgressFont);
mcPointsView2.setText("" + mc_score);
gPointsView2.setTypeface(myProgressFont);
gPointsView2.setText("" + g_score);
fttPointsView2.setTypeface(myProgressFont);
fttPointsView2.setText("" + ftt_score);
dateView2.setTypeface(myProgressFont);
dateView2.setText("" + rts_date);
rtsPointsView3.setTypeface(myProgressFont);
rtsPointsView3.setText("" + rts_score);
mcPointsView3.setTypeface(myProgressFont);
mcPointsView3.setText("" + mc_score);
gPointsView3.setTypeface(myProgressFont);
gPointsView3.setText("" + g_score);
fttPointsView3.setTypeface(myProgressFont);
fttPointsView3.setText("" + ftt_score);
dateView3.setTypeface(myProgressFont);
dateView3.setText("" + rts_date);
rtsPointsView4.setTypeface(myProgressFont);
rtsPointsView4.setText("" + rts_score);
mcPointsView4.setTypeface(myProgressFont);
mcPointsView4.setText("" + mc_score);
gPointsView4.setTypeface(myProgressFont);
gPointsView4.setText("" + g_score);
fttPointsView4.setTypeface(myProgressFont);
fttPointsView4.setText("" + ftt_score);
dateView4.setTypeface(myProgressFont);
dateView4.setText("" + rts_date);
rtsPointsView5.setTypeface(myProgressFont);
rtsPointsView5.setText("" + rts_score);
mcPointsView5.setTypeface(myProgressFont);
mcPointsView5.setText("" + mc_score);
gPointsView5.setTypeface(myProgressFont);
gPointsView5.setText("" + g_score);
fttPointsView5.setTypeface(myProgressFont);
fttPointsView5.setText("" + ftt_score);
dateView5.setTypeface(myProgressFont);
dateView5.setText("" + rts_date);
rtsPointsView6.setTypeface(myProgressFont);
rtsPointsView6.setText("" + rts_score);
mcPointsView6.setTypeface(myProgressFont);
mcPointsView6.setText("" + mc_score);
gPointsView6.setTypeface(myProgressFont);
gPointsView6.setText("" + g_score);
fttPointsView6.setTypeface(myProgressFont);
fttPointsView6.setText("" + ftt_score);
dateView6.setTypeface(myProgressFont);
dateView6.setText("" + rts_date);
rtsPointsView7.setTypeface(myProgressFont);
rtsPointsView7.setText("" + rts_score);
mcPointsView7.setTypeface(myProgressFont);
mcPointsView7.setText("" + mc_score);
gPointsView7.setTypeface(myProgressFont);
gPointsView7.setText("" + g_score);
fttPointsView7.setTypeface(myProgressFont);
fttPointsView7.setText("" + ftt_score);
dateView7.setTypeface(myProgressFont);
dateView7.setText("" + rts_date);
totalScoreView.setTypeface(logoFont);
totalScoreView.setText("Total score: " + total_score);
//endregion setTypeface & setText
}
}
activity_my_progress.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFF00"
tools:context="com.pracainzynierska.inzynierka.MyProgressActivity">
<TableLayout
android:id="@+id/myprogressTable"
android:layout_width="416dp"
android:layout_height="534dp"
android:layout_marginTop="195dp"
android:layout_weight="0"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TableRow android:layout_height="60dp">
<TextView
android:id="@+id/date"
android:layout_width="30dp"
android:layout_height="50dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="Date"
android:textStyle="bold" />
<TextView
android:id="@+id/hitLabel"
android:layout_width="49dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="Remember The Sequence"
android:textStyle="bold" />
<TextView
android:id="@+id/errorLabel"
android:layout_width="44dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="MathChain"
android:textStyle="bold" />
<TextView
android:id="@+id/geomemotry_table"
android:layout_width="50dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="Geomemotry"
android:textStyle="bold" />
<TextView
android:id="@+id/fillthetext_table"
android:layout_width="50dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="Fill The Text"
android:textStyle="bold" />
</TableRow>
<TableRow android:layout_height="wrap_content">
<TextView
android:id="@+id/date1"
android:layout_width="44dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="0"
android:textStyle="bold" />
<TextView
android:id="@+id/rts_score_1"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="0" />
<TextView
android:id="@+id/mc_score_1"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="0" />
<TextView
android:id="@+id/g_score_1"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="0" />
<TextView
android:id="@+id/ftt_score_1"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="0" />
</TableRow>
<TableRow android:layout_height="wrap_content">
<TextView
android:id="@+id/date2"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text=""
android:textStyle="bold" />
<TextView
android:id="@+id/rts_score_2"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/mc_score_2"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/g_score_2"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/ftt_score_2"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
</TableRow>
<TableRow android:layout_height="wrap_content">
<TextView
android:id="@+id/date3"
android:layout_width="44dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text=""
android:textStyle="bold" />
<TextView
android:id="@+id/rts_score_3"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/mc_score_3"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/g_score_3"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/ftt_score_3"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
</TableRow>
<TableRow android:layout_height="wrap_content">
<TextView
android:id="@+id/date4"
android:layout_width="44dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text=""
android:textStyle="bold" />
<TextView
android:id="@+id/rts_score_4"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/mc_score_4"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/g_score_4"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/ftt_score_4"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
</TableRow>
<TableRow android:layout_height="wrap_content">
<TextView
android:id="@+id/date5"
android:layout_width="44dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text=""
android:textStyle="bold" />
<TextView
android:id="@+id/rts_score_5"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/mc_score_5"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/g_score_5"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/ftt_score_5"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
</TableRow>
<TableRow android:layout_height="wrap_content">
<TextView
android:id="@+id/date6"
android:layout_width="44dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text=""
android:textStyle="bold" />
<TextView
android:id="@+id/rts_score_6"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/mc_score_6"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/g_score_6"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/ftt_score_6"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
</TableRow>
<TableRow android:layout_height="wrap_content">
<TextView
android:id="@+id/date7"
android:layout_width="44dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text=""
android:textStyle="bold" />
<TextView
android:id="@+id/rts_score_7"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/mc_score_7"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/g_score_7"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
<TextView
android:id="@+id/ftt_score_7"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="" />
</TableRow>
</TableLayout>
<TextView
android:id="@+id/myProgressView"
android:layout_width="270dp"
android:layout_height="52dp"
android:layout_marginTop="60dp"
android:gravity="center_horizontal"
android:text=""
android:textSize="32sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/username_myprogress"
android:layout_width="79dp"
android:layout_height="35dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:text=""
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/totalScoreView"
android:layout_width="200dp"
android:layout_height="39dp"
android:layout_marginBottom="10dp"
android:gravity="center"
android:text=""
android:textSize="24sp"
app:layout_constraintBottom_toTopOf="@+id/myprogressTable"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
游戏存档之一
//method for saving. It looks almost the same in every mini-game
private void saveScore() {
SharedPreferences preferences = this.getSharedPreferences(usernameView.getText().toString(), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("rts_score",player_points);
editor.commit();
}
解决方案
推荐阅读
- r - R flextable垂直合并以另一列为条件
- python - 如何在python中获取div标签的title属性的文本值?
- python - 如何仅显示一个变量的数据与另一个变量的列数据匹配的行
- git - find命令后如何执行一系列命令?
- swift - 在图表库 Swift 中截断 PieChart 的值标签
- mysql - 使用嵌套查询是否会通过简单查询向 sql 查询添加语义
- python - Python:如何在忽略列表项顺序的情况下比较两个带有列表的字典?
- c - 为什么程序省略了一些行?(加密文本的c程序)
- flutter - Flutter 改变音频
- javascript - 当我在 jquery 中使用 load() 函数时,按钮不起作用