忍者ブログ

ゲーム

ゲーム製作日誌

2024'11.23.Sat
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2012'12.06.Thu
プリファレンス
参照:http://androlab.blogspot.jp/2011/01/blog-post_20.html
実験対象バージョン:Android2.3.3

あくまで、私的内容です。
これがいいとは限らないと思います。
参照ページは、もう少し分かりやすいですw

外から呼び出し用で、getメソッド、setメソッドにしています。
変数は気にしてはダメですw


SystemChi.java  

getメソッドsetメソッドです。
チェックは入っていません。残念ながらw
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
public class SystemChi
{
//設定ファイル名
final String FILE_NAME = "Setei";

//***************************************************
// setメソッド
//
// sKey : プレファレンス名
// sValue : String型値
//
//***************************************************
//--------------------------------
// 文字列
//--------------------------------
public void set(Context context,String sKey,String sValue)
{
try
{
SharedPreferences sp = context.getSharedPreferences(sFILE,Context.MODE_PRIVATE);
Editor e = sp.edit();
e.putString(sKey, sValue);
e.commit();
//確認用
// Toast.makeText(context.getApplicationContext(), "保存", Toast.LENGTH_SHORT).show();
}
catch(Exception e)        
{        
e.printStackTrace();         
}
}
//*****************************************************
// getメソッド
//
// sKey : プレファレンス名
//
//*****************************************************
public String get(Context context, String sKey
{
try
{
SharedPreferences sp = context.getSharedPreferences(sFILE,Context.MODE_PRIVATE);
//確認用
//Toast.makeText(context.getApplicationContext(), sp.getString(sKey, "0"), Toast.LENGTH_SHORT).show();
return sp.getString(sKey, "0");
}
catch(Exception e)        
{        
e.printStackTrace();         
return null;        
}
}    

//***********************************************************
// 削除メソッド    
//    
// sKey : プレファレンス名
//
//***********************************************************

public void Del(Context context,String sKey)
{
try
{
SharedPreferences sp = context.getSharedPreferences(sFILE,Context.MODE_PRIVATE);
Editor e = sp.edit();
//プレファレンス削除処理
e.remove(sKey);
e.commit();
}
catch(Exception e)
{
e.printStackTrace();     
}
}
◆Setメソッド
(以下参照HPより)
定数説明
MODE_PRIVATE作成したアプリのみ読み書きできる
MODE_WORLD_READABLE他アプリに読み込み権を与える
MODE_WORLD_WRITEABLE他アプリに書き込み権を与える

今回は、作成したアプリのみの読み書きにしています。
アプリのみの読み書きだと他にも方法があります。
参照:http://androidhacker.blog94.fc2.com/blog-entry-88.html

◆Getメソッド
コメントアウトしている部分で確認も出来ます。
セットしていない場合は、「0」が表示されます。

◆Delメソッド
ファイルは消えません。
プレファレンスキーにしているものが消えます。


メインで呼び出し方法
 


◆セットする時
new SystemChi().set(this,"プレファレンスキー名",”プレファレンス内容");

◆取得する時 
new SystemChi().get(this,"プレファレンスキー名");
※取得する変数をお忘れなく。

◆削除する時
new SystemChi().Del(this,"プレファレンスキー名");



確認方法
 

参照:http://webya.in/archives/3577

このページの後半より「ファイル・エクスプローラーで確認してみる」に詳しく載っています。
ちなみにファイル名は、「Setei.xml」が出来ていると思います。
その為、「Setei」を変えると好きなファイル名に出来ます。
PR
2012'12.06.Thu
サブMENU処理を他メソッド化

参照:http://d.hatena.ne.jp/murakaming/20110427/1303885394
実験対象バージョン:Android2.3.3

あくまで、私的内容です。
これがいいとは限らないと思います。
参照ページは、もう少し使い勝手を良くされているので、是非参考にして下さい。
また、変数は気にしたら負けですw




MenuManager.java
 

メニューの設定内容です。
メニューが押されたときにどんな処理をするのかを記入します。
今回は、終了ボタンが押されると画面をバックグランドにする処理が入っています。


import android.app.Activity;
import android.view.InflateException;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
//************************************************************************
// サブメニュー表示欄(アプリ終了・継続表記)
//************************************************************************

public class MenuManager
{
//----------------------------------
// Menu表示イベント
//----------------------------------

public boolean createOptionsMenu(Activity activity, Menu menu)
{
// 呼び出し側ActivityへMenu設定
MenuInflater inflater = activity.getMenuInflater();
try
{
//メニュー表示(menu.xml)表示
inflater.inflate(R.menu.menu, menu);
}
catch (InflateException e)
{
return false;
}

return true;
}
//-------------------------------
// Menu選択イベント
//-------------------------------
public boolean optionsItemSelected(Activity activity, MenuItem item)
{
switch (item.getItemId())
{
case R.id.it_shuryou:
// アクティビティをバックグラウンドに移動する
activity.moveTaskToBack(true);
return true;
case R.id.it_zokkou:
//何もしないで戻る
return true;
default:
return false;
}
}



res/menu/menu.xml
 

XMLの記述は、あんまり上手くないので微妙な部分もあるかも知れません。
変数は適当過ぎですw




<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">

<!-- 終了 -->
<item
android:id="@+id/it_shuryou"
android:title="@string/shuryou"
android:icon="@android:drawable/ic_menu_close_clear_cancel"
></item>

<!-- 戻る -->
<item
android:id="@+id/it_zokkou"
android:title="@string/zokkou"
android:icon="@android:drawable/ic_menu_revert"
></item>

</menu> 

メニューアイコンについては、以下を参照
http://andante.in/i/android%E3%82%A2%E3%83%97%E3%83%AAtips/%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E7%94%A8%E3%81%AE%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E4%B8%80%E8%A6%A7ic_menu_/


呼び出すjava内
 

呼びだす時は以下で呼んでいます。
画面遷移をしても、遷移先で同じ以下の記述をしておけば、上記の処理を毎回行ってくれます。




//***************************************************************
// メニュー画面(終了画面)
//***************************************************************
//----------------------
//メニュー画面呼び出し
//----------------------
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
return new MenuManager().createOptionsMenu(this, menu);
}
//----------------------
// Menu選択イベント
//----------------------
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
// 共通処理
return new MenuManager().optionsItemSelected(this, item);
}


 HOME 
リンク
ブログ内検索
広告

ゲーム wrote all articles.
Powered by Ninja.blog * TemplateDesign by TMP  

忍者ブログ[PR]