Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式在表中添加新行_Java_Android_Android Layout - Fatal编程技术网

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

Java 以编程方式在表中添加新行,java,android,android-layout,Java,Android,Android Layout,我试图解决一个问题,当用户每天完成所有迷你游戏时,创建新行 代码应该将今天的分数保存到变量中(我使用的是SharedReferences),如果前一行的值大于零,则将此变量保存到下一行。 目标是用户可以跟踪其进度。 我所做的是将所有4场比赛的分数保存到一行,同时也保存了今天的日期。我确信像rtsPointsView1,2,3等多个变量都是无用的,我可以用更有效的方式来写,但我不知道怎么写 如何创建正确显示用户进度的表格 MyProgressActivity.java package com.pr

我试图解决一个问题,当用户每天完成所有迷你游戏时,创建新行

代码应该将今天的分数保存到变量中(我使用的是SharedReferences),如果前一行的值大于零,则将此变量保存到下一行。 目标是用户可以跟踪其进度。

我所做的是将所有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


    }
}

活动_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>

我认为最好的方法是使用ListView并通过ListAdapter进行更新。看看本教程:我认为最好的方法是使用ListView并通过ListAdapter进行更新。请看本教程:

//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();
    }