以编程方式在表中添加新行

时间:2019-11-21 12:30:10

标签: java android android-layout

当用户每天要完成所有迷你游戏时,我正在尝试创建新行来解决问题。

代码应将今天的分数保存到变量中(我使用的是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();
    }

0 个答案:

没有答案