2016-11-17 7 views
-1

ボタンをクリックするとクリック数をカウントし、15秒後にボタンガードが無効になり、その15秒間にどれくらいクリックしたかを知りたいクリッカープログラムを開発しましたハイスコ​​アと私は高得点が同じ活動に私の新しいハイスコアショーを保存することを交差**私のアプリにデータを格納する(高得点)

+1

を....と質問です:

String PREFS_GAME ="your package name"; SharedPreferences sp = getSharedPreferences(PREFS_GAME,Context.MODE_PRIVATE); final Integer oldrec = sp.getInt("record",0); 

その後、setOnclicklistenreにこのコードを書くのか? – Opiatefuchs

+0

^^あなたはあなたが何を望んでいるのか、何を試しているのかを詳しく説明できますか? –

+0

どういう意味ですか? – user3476090

答えて

0

私はお勧め:

public class MainActivity extends AppCompatActivity { 

private int clicks = 0; 
private TextView mTextView; 
Button bt_restart; 
int high; 
public static final String MyPREFERENCES = "MyPrefs" ; 
public static final String HIGHSCORE = "high" ; 

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    SharedPreferences prefs = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE); 
    high = prefs.getInt(HIGHSCORE, 0); 
    bt_restart = (Button)findViewById(R.id.restart); 
    bt_restart.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent restartIntent = getBaseContext().getPackageManager() 
        .getLaunchIntentForPackage(getBaseContext().getPackageName()); 
      restartIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(restartIntent); 
     } 
    }); 

    mTextView = (TextView) findViewById(R.id.total_textview); 
    mTextView.setVisibility(View.VISIBLE); 

    Button button = (Button) findViewById(R.id.count_button); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(final View v) { 
      final Button b = (Button)v; 
      if (clicks == 0){ 
       // Means its the first time that a user click the button 
       // Start a thread that is going to disable the button after 5 seconds from first click 
       new CountDownTimer(15000, 1000) { 
        public void onTick(long millisUntilFinished) { 
         b.setText(millisUntilFinished/1000 + " Seconds"); 
        } 

        public void onFinish() { 
         b.setText("Time up"); 
         b.setEnabled(false); 
         // Showing user clicks after button is disabled 
         showClicks(); 
        } 
       }.start(); 
      } 
      // Here we are just counting . . . . including the first click 
      countClicks(); 
     } 
    }); 

} 


private void countClicks(){ 
    ++clicks; 
    mTextView.setText(Integer.toString(clicks)); 

    // You can update your text view here 
} 
private void showClicks(){ 
    mTextView.setText(String.valueOf(clicks)+"Clicks"); 
    mTextView.setVisibility(View.VISIBLE); 
    if(clicks > high){ 
     SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); 
     editor.putInt(HIGHSCORE, clicks); 
     editor.commit(); 
     high = prefs.getInt(HIGHSCORE, 0); 
    }  
} 

その後、あなたはハイスコアの使用にのTextViewを表示する場合とでsetTextはString.valueOf(high)を使用していますが、変数を変更するときにtextviewが変更されるかどうかわかりません。おそらくtextview.setText everyTima変数を編集する必要があります高い(コードをリンクに基づいて:Android Shared preferences example

+0

"+1"私はあなたのレスポンスをお詫びしていますerroに近づいていませんあなたは私にfaverをして​​くださいちょうど私がコピーして過去に行うことができるGitHubホに教えてください – user3476090

+0

何がエラーですか? – dpart

+0

アプリケーションがクラッシュする? – dpart

1

あなたはsharedpreferencesを使用してあなたの最高得点を保存して確認することができます。 set_ContentViewの下

これらの行開始時:このよう

if (newrec>oldrec){ 
       sp.edit().putInt("record",new rec).commit(); 
       Toast.makeText(MainActivity.this,"your new record is :"+newrec, Toast.LENGTH_SHORT).show(); 
       } 
+0

のリンクを含むあなたの答えを編集しました – user3476090

+0

最初に置く新しいスコアと前のスコアを比較したいときは "Oncreate"の3行を "if"にします。 –

+0

私はちょうどそれをコピーして害虫をかける完全なコードを書くことができますか?私はプログラムで新しいです – user3476090

関連する問題