2011-12-06 23 views
0

私は新しい開発者です。私の質問はあまりにも基本的かもしれません。 音の嗜好を定義する例を見ています。ユーザーは、たとえば、アプリケーションを開始するサウンドの種類を選択できます。このようなRingtonPreferenceウィジェットがあるので、ユーザーはサウンドを選択できます。 私が知っているように、プリファレンスはプリミティブ型をサポートしています:Boolean、string、float、longとinteger。どのような方法で設定を設計するのが最善でしょうか:サウンド(文字列)、Resourseクラス(整数)からのファイルのアドレス、またはその他の方法で、名前をentryValueに格納します。 コードの簡単な例を入力してください。 ありがとうございます!環境設定 - メディアファイル、画像を使用

最初にすばやく詳細な回答をいただきありがとうございます。 私は音のリストを手配したいと思います: "なし"というフォルダ、 "生の"フォルダを含むサウンドのリスト、別の場所から新しいサウンドを加えるオプション、 "set"と "cancel"の2つのボタンが必要です。ユーザーがリストから1つの項目をタッチすると、サウンドが再生を開始します。 アンドロイドライブラリを提供する標準ウィジェットには少し問題があります。 "ListPreference"は適切ではありません。アイテムの1つに触れるとitemが選択され、リストが閉じます。 "ボタンは設定されていません"。 "RingtonPreference"も適切ではありません - リストに何かを追加することに成功しませんでした。 カスタムのレイアウトを構築する方法と、選択したオプションが標準のウィジェットに保存される方法があります。短いコード例を提供してください。前もって感謝します!

+0

私は私の質問にいくつかの良いexplenationを見つけました。 http://stackoverflow.com/questions/4505845/concise-way-of-writing-new-dialogpreference-classes –

答えて

1

私はリソースを格納する最良の方法は整数であると思います。または名前を付けることができます。

私は整数がより信頼できると思います。

だから、これでSharedPreferenceを使用することができ、アプリSharedPreference

public class PreferencesDemo extends Activity { 

SharedPreferences app_preferences; 
private int resourceNumber; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // Get the app's shared preferences 

    SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this); 

    resourceNumber = app_preferences.getInt("resourceNumber", 0); 

    if(resourceNumber == 0){ 

    //This means the user hasnt selected a song and you must act accordingly. Or put a resource number where the 0 is do set it to a default song 

    } 
おそらくSharedPreferenceなどの曲を入れてメソッドを作成することになるでしょう

へのアクセスを取得する必要があります。

private void createSongResouces(){ 

    SharedPreferences.Editor editor = app_preferences.edit(); 
    //Here you can put as many songs as you want just make sure you call editor.commit(); as i do. 

    editor.putInt("resourceNumber", resourceNumber); 
    editor.commit(); // Very important 
}