2016-08-28 18 views
1

私は、保存ボタンをクリックしたときにバスケットボールのゲームカウンターアプリから保存されたチーム名や日付などのゲームスコアを保存しようとしています。私はプログラミングに慣れていないし、私が探し求めたものは私を助けなかった。ここでバスケットボールのスコアカウンターアプリのチーム名を含むゲームスコアを保存するにはどうすればよいですか?

は、Javaコードです:

 
package com.example.android.courtcounter;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

int scoreTeamA = 0; int scoreTeamB = 0;

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); displayForTeamA(0); displayForTeamB(0); setTitle("Basketball Count"); Toast.makeText(getApplicationContext(), "You can change team names and scores manually by clicking on them", Toast.LENGTH_LONG).show(); } // +3 Points for Team A public void addThreeForTeamA (View view) { scoreTeamA = scoreTeamA + 3; displayForTeamA(scoreTeamA); } // +2 Points for Team A public void addTwoForTeamA (View view) { scoreTeamA = scoreTeamA + 2; displayForTeamA(scoreTeamA); } // +1 Point for Team A public void addOneForTeamA (View view) { scoreTeamA = scoreTeamA +1; displayForTeamA(scoreTeamA); } // Displays the given score for Team A. public void displayForTeamA(int score) { TextView scoreView = (TextView) findViewById(R.id.team_a_score); scoreView.setText(String.valueOf(score)); } // +3 Points for Team B public void addThreeForTeamB (View view) { scoreTeamB = scoreTeamB + 3; displayForTeamB(scoreTeamB); } // +2 Points for Team B public void addTwoForTeamB (View view) { scoreTeamB = scoreTeamB + 2; displayForTeamB(scoreTeamB); } // +1 Point for Team B public void addOneForTeamB (View view) { scoreTeamB = scoreTeamB +1; displayForTeamB(scoreTeamB); } // Displays the given score for Team B. public void displayForTeamB(int score) { TextView scoreView = (TextView) findViewById(R.id.team_b_score); scoreView.setText(String.valueOf(score)); } public void resetScore (View view) { scoreTeamA = 0; scoreTeamB = 0; displayForTeamA(scoreTeamA); displayForTeamB(scoreTeamB); }

}

私はのEditTextビューに得点し、チーム名を格納し、それらを保存し、後でそれらをロードしたいました。誰でも特定のゲームスコアを保存して読み込むために何を使うべきか考えましたか?

おかげ

+1

使用 'スコアを格納するために' 'SQLiteのdatabase'''を。 –

+2

@SanketMakaniデータベースはこの目的のために残虐なものになるでしょう。 'SharedPreferences'ははるかに使いやすく、OPのユースケースをうまくカバーしています。 –

+0

@OP収集しようとしているデータの深度を指定する必要があります。それがなければ、あなたが何をやろうとしているのか、私の上記のコメントを見てください。それがあなたがしようとしているものと合致すれば、あなたの投稿を更新してください。収集する前にデータとその使用方法を理解する。また、チームの得点の合計を返すことは、チームのすべての得点(一部の制限内)を照会し、その値を返すことと同じくらい簡単です。 – JoxTraex

答えて

0

あなたは、世界中のすべてのユーザー用のデータベースを作成する場合は、SQLを使用すると、おそらくプログラミング言語をPHPの必要があります。データベースの編集のためのSQL、データベースの編集を制御するためのPHP。

しかし、アプリケーションを使用しているデバイスのデータだけを保存したい場合は、アンドロイドプロジェクトファイルにテキストファイルを作成するだけです。次に、コードを使用してテキストファイルを埋め込むことができます。

0

データベースを使用できますが、必要以上のものだと思います。 また、ファイルを使用することができます。

  1. はあなたのmanifest.xmlにこれらを追加します含む文字列で

    void writeToFile(String string) { 
        FileOutputStream outputStream = openFileOutput("thiswillbethenameofyourfile", Context.MODE_PRIVATE); 
        outputStream.write(string.getBytes()); 
        outputStream.close(); 
    } 
    
    String readFromFile() { 
        String content; 
        FileInputStream inputStream = openFileInput("thiswillbethenameofyourfile"); 
        byte[] buffer = new byte[1024]; 
        int n; 
        while ((n = inputStream.read(buffer)) != -1) 
        { 
         content.append(new String(buffer, 0, n)); 
        } 
        return content; 
    } 
    
  2. コールWRITETOFILE:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    
  3. は2つの機能を追加しますスコア。

  4. スコアを戻すにはreadFromFileを呼び出します。
  5. すべてのものを1つのファイルに保存する必要がある場合は、複数のファイルを使用して複数のデータを格納することができますが、これは良いスタートです。

また@Andrew日は、あなたが、私はUdacityの優れた「イントロのAndroidへの」進路からこのコードを認識sharedPreferences

​​

1

を使用することができます述べたように..あなたは、保存するためにsharedPreferencesを使用する必要があると思いますスコア。たとえば、次のように

SharedPreferences sharedPref = getSharedPreferences(
       getString(R.string.preference_file_key), Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putInt("scoreTeamA", scoreTeamA); 
editor.putInt("scoreTeamB", scoreTeamB); 
editor.apply(); 

そして値取得する:

SharedPreferences sharedPref = getSharedPreferences(
       getString(R.string.preference_file_key), Context.MODE_PRIVATE); 
int scoreTeamA = sharedPref.getInt(scoreTeamA, 0); 
int scoreTeamB = sharedPref.getInt(scoreTeamB, 0); 
+0

これはあなたが必要とするすべてのもので、sharedPreferencesはアプリケーションの実行の間に離れることはありません。アプリをアンインストールした場合にのみ消えます。 – ShadowGod

+0

ありがとう、私はこれをこのように実装しようとします – user6767252

関連する問題