2017-07-10 11 views
0

みんな。私はここで真剣な新人ですので、フォーム/用語の問題をある程度は容赦してください。私は文字通り数時間前にこの問題を研究しましたが、関連するすべての鎖を既に含んでいます。私は約束します!はい、私はAndroidの資料を読んでいます。私もこのトピックに関する3冊の本の章を読みました!Androidスタジオ:再起動時に読み込むために、設定の最後のアクティビティを保存する方法

誰もがユーザー名やサウンド設定に関連する例を使用しているようです。間違った場所を使用してこのデータタイプをすべて保存していますか?

JavaとAndroidを学ぼうとする最初のプロジェクトとして、私はインタラクティブ・フィクションの本を書いています。子供の頃からChoose Your Own Adventureの本を考えてみましょう。

私は、アプリケーションが(自動的にまたは「ゲームをロード」ボタンを介して)ユーザーが最後に行ったアクティビティ(ページ)に戻るように、sharedPreferencesに最新のアクティビティ名を保存するようにします。

ユーザーがどこにでもロードできるように、ユーザーがブックを通過するときに、各アクティビティのプリファレンスを編集する予定です。

は、ここで私は優先順位を設定するために使用することが出来るのです、私は考えるコードです:

SharedPreferences setpage = getSharedPreferences("page", Context.MODE_PRIVATE); 
SharedPreferences.Editor editor =setpage.edit(); 
editor.setpage ("page"); 

が、私はすぐに「editor.setpage」の赤い文字を取得します。私は間違って何をしていますか?

あなたはどのように設定で最後のアクティビティを保存しますか?

ありがとうございます!

答えて

1

あなたは、このように値を設定することができますSharedPreferences.Editor

なしsetPage(..)方法:あなたがデータを取得する際の後

SharedPreferences prefs = getSharedPreferences("MY PREF", Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = prefs.edit(); 
editor.putString("pageName","page"); 
editor.apply(); 

は:

SharedPreferences prefs = getSharedPreferences("MY PREF", MODE_PRIVATE); 
String pageName = prefs.getString("pageName", null); 
if (pageName == null) { 
    //"No name defined" is the default value. 
} 

あなたがからSharedPreferencesについての詳細を確認することができますhere

+0

を開始アクティビティ名を文字列として今すぐ...しかし、その文字列をどのように取得して、それを使用可能なクラス名にするのですか?私はこのようなコードを書く:インテントgotopage =新しいインテント(MainActivity.this、//ここに格納されたデータが必要); startActivity(gotopage); –

+0

yeh。データを優先的に保存し、いつでも検索することができます。 'それを使えるクラス名にする'ということはどういう意味ですか? – Aryan

0

あなたがしたいことは、SharedPreferencesでは非常に基本的なので達成できません。しかし、私はあなたがデータベースとAndroidとの統合について学ぶことをお勧めします。しかし、ユーザーがアプリを開いた回数を数えたい場合など、SharedPreferencesが必要な場合もあります。

以下のコードを使用してSharedPreferencesに教えてください。

最初の行は新しいSharedPreferenceオブジェクトを作成し、2番目はエディタを作成します。つまり、SharedPreferencesに何かを書き込むために鉛筆を作成します。

4行目では、以前の金額はcountです。 getInt()メソッドの最初の引数は、私にcountを返します。カウントが存在しない場合は0を返します(アプリケーションを初めて開くときに発生します)。

putInt()のように見える場合は、最初の引数はcountで、データを格納するユニークなキーです(データ型は呼び出すメソッドによって異なります)。たとえば、他の場合はputString()を使用します。値を取得するにはこのキーが必要です(4行目と同じように).2番目の引数は新しい値count

の最後の行です。文字列

SharedPreferences sharedPref = getSharedPreferences("MyPages", Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putString("page", "PageX"); 
editor.apply(); 

として

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
SharedPreferences.Editor editor = preferences.edit(); 

int previousCount = preferences.getInt("count", 0); 

editor.putInt("count", previousCount + 1); 
editor.commit(); 
0

保存活動名[OK]を、これは多くのことを助け、そして私は保存することができると思うSharedPreferenceからのアクティビティを取得し、それを

SharedPreferences sharedPref = getSharedPreferences("MyPages", Context.MODE_PRIVATE); 
      String page = sharedPref.getString("page", "PageX"); 
      Intent ActivityPage = new Intent(MainActivity.this, Class.forName(page)); 
      startActivity(ActivityPage); 
関連する問題