2016-09-10 14 views
0

クリッカークリッカーのようなクリッカーアプリケーションを作った。しかし、私がアプリケーションを再起動すると、アプリはクリックを保存しますが、表示されるだけなので、ボタンをクリックすると、クリックは再び0に設定されます。だから私の質問:私のSharedPreferenceが正しいのですか、または私は間違いを犯しましたか? 私の完全なMainActivity.java:クリッカーアプリケーション:クリックが正しく保存されない

package com.rage.clicker; 

import android.content.Context; 
import android.content.SharedPreferences; 
import android.media.AudioManager; 
import android.media.SoundPool; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; import android.view.animation.Animation; 
import android.view.animation.AnimationUtils; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.widget.Toast; 
import org.w3c.dom.Text; 

import static com.rage.clicker.R.id.highscore_text; 
import static com.rage.clicker.R.id.textView88; 

public class MainActivity extends AppCompatActivity { 
    SoundPool mySound; 
    int playClick; 
    private final String TAG = this.getClass().getName(); 
    ImageView hi; 
    TextView tv_clicks; 
    TextView ht; 
    ImageView b_click; 
    Button save; 
    int clicks; 
    SharedPreferences sf; 
    public static final String preference = "pref"; 
    public static final String saveIt = "saveKey"; 
    private TextView highScoreView; 
    private TextView currentScoreView; 
    private int currentScore; 
    private int highScore; 
    private String highScoreString; 
    private String currentScoreString; 
    private SharedPreferences msharedPreferences; 

    private static final String FILENAME = "PreferencesFilename"; 
    private static final String VAL_KEY = "ValueKey"; 
    private EditText editText; 
    private TextView TEV; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     //Speichern laden 
     TEV = (TextView) findViewById(R.id.textView88); 
     SharedPreferences sharedPrefs = getSharedPreferences(FILENAME, 0); 
     TEV.setText(sharedPrefs.getString(VAL_KEY, "")); 
     //Speichern laden 
     msharedPreferences = getPreferences(MODE_PRIVATE); 
     mySound = new SoundPool(100, AudioManager.STREAM_MUSIC, 0); 
     playClick = mySound.load(this, R.raw.click, 1); 
     tv_clicks = (TextView) findViewById(textView88); 
     b_click = (ImageView) findViewById(R.id.imageView); 
     hi = (ImageView) findViewById(R.id.imageView); 
     b_click = (ImageView) findViewById(R.id.imageView); 
     ht = (TextView) findViewById(highscore_text); 
     final TextView TV = (TextView) findViewById(R.id.highscore_text); 
     currentScoreString = getString(R.string.current_score); 
     highScoreString = getString(R.string.high_score); 
     currentScore = clicks; 
     highScore = msharedPreferences.getInt(highScoreString, 0); 

     save = (Button) findViewById(R.id.button); 
     save.setOnClickListener( 
      new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast dumplings= Toast.makeText(MainActivity.this, "Adolf4", Toast.LENGTH_LONG); 
       dumplings.show(); 
      } 
     }); 

     b_click.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       final ImageView zoom = (ImageView) findViewById(R.id.imageView); 
       final Animation zoomAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.size); 
       zoom.startAnimation(zoomAnimation); 
       mySound.play(playClick, 1, 1, 1, 0, 1); 
       clicks++; 

       tv_clicks.setText("Klicks: " + clicks); 
       ht.setText(currentScoreString + ": Test" + currentScore); 
      } 
     }); 
    } 

    protected void init() { 
     currentScoreView.setText(currentScoreString + ": asd" + currentScore); 
     highScoreView.setText(highScoreString + ":34 " + highScore); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 
     //Speichern 
     SharedPreferences sharedPrefs = getSharedPreferences(FILENAME, 0); 
     SharedPreferences.Editor editor = sharedPrefs.edit(); 
     editor.putString(VAL_KEY, TEV.getText().toString()); 
     editor.commit(); 
     //Speichern 
    } 
} 
+1

もちろん、それはゼロ –

+0

@Sami Kuhmonenですので、あなたがclicks' 'の値を復元することはありませんああ、あなたは私に多分そのコードを与えることができますか? – NoNameCoding

+0

@NoNameCodingこれは、すでにハイスコアで行っているのと同じです。 –

答えて

1

あなたがデータを保存すると、あなたはTEVTextViewから値を数えるのをクリックして取るが、onClickイベント内であなたがtv_clicksTEVを更新するには、常にデフォルトではゼロのまま。あなたは、その後、クリック数の値をロードし、それを設定する必要があり、この

editor.putInt(VAL_KEY, clicks); 

などのクリック値を保存する必要がありTextView

clicks = sharedPrefs.getInt(VAL_KEY, 0) 
TEV.setText(String.valueOf(clicks)); 
+0

私はこれが問題だとは思わない。 –

+0

@ Code-Apprenticeとは何ですか? –

+0

わかりません。しかし、この答えは、アプリケーションを停止してから再起動することと関係があります。 –

関連する問題