2012-03-10 6 views
0

どのように私はそれが私がそれを見つけたが、完全なチュートリアルを見つけられなかった、私は本当に混乱して、システムringTonesから彼女の着メロを選ぶことができる(設定で常に現れる)チュートリアルやいくつかのコードを教えてください。私は好みで着メロを作ることができます

また、自分のアプリケーションで通知に特別な着信音を選択したい場合は、共有の環境設定や環境設定を使用する必要がありますか?

私はすでにメニューました:

 // Menu Code Part#2 
    public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.about: 
    startActivity(new Intent(this, About.class)); 
    return true; 
    case R.id.help: 
    startActivity(new Intent(this, Help.class)); 
    return true; 
    case R.id.setting: 
    startActivity(new Intent(this, Setting.class)); 
     return true; 
    default: 
    return super.onOptionsItemSelected(item); 
    } 

答えて

6

全コード:

のres/xmlの/あるpreferences.xml

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
     <PreferenceCategory 
       android:title="Second Category"> 

     <RingtonePreference 
       android:name="Ringtone Preference" 
       android:summary="Select a ringtone" 
       android:title="Ringtones" 
       android:key="ringtonePref" /> 

</PreferenceCategory> 
</PreferenceScreen> 

Preferences.class

public class Preferences extends PreferenceActivity { 
@Override 
     protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       addPreferencesFromResource(R.xml.preferences); 

} 
} 

あなたのコードはここに行く:

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.about: 
    // startActivity(new Intent(this, About.class)); 
    return true; 
    case R.id.help: 
    startActivity(new Intent(this, Help.class)); 
    return true; 
    case R.id.setting: 
    Intent settingsActivity = new Intent(getBaseContext(), 
               Preferences.class); 
           startActivity(settingsActivity); 


     return true; 
    default: 
    return super.onOptionsItemSelected(item); 
    } 

コードからこれらの設定を読み込むには、onStart()メソッドで呼び出すことができるgetPrefs()メソッドを作成する必要があります。私たちが代わりにonCreate()onStart()方法でそれを呼び出すと、我々はそれらを設定し、私たちの主な活動に戻ってきたときに好みが読み込まことを確認することができ、 getPrefs()方法は次のようになります。

String ringtonePreference; 
// Get the xml/preferences.xml preferences 
       SharedPreferences prefs = PreferenceManager 
           .getDefaultSharedPreferences(getBaseContext()); 
ringtonePreference = prefs.getString("ringtonePref", 
           "DEFAULT_RINGTONE_URI"); 

androidmanifest .xml

<activity 
     android:name=".Preferences" 
     android:label="@string/set_preferences"> 
</activity> 
+0

mainfistの最初のコードをありがとう? 2番目のコードはnewActivityに入れて、メニューのnewActivityを呼び出す必要があります。右?また2番目のコード、reingtoneに完全なコードですか?または別のコードが必要ですか? – user1257040

+0

@ user1257040:preferneces.xmlファイルの最初のコードと、選択した着信音にアクセスする2番目のコード。 –

+0

は完全なコードですか?つまり、別のコードを書く必要はありませんか? – user1257040

1

はい、ユーザーが選択した着信音のURIを格納するのにSharedPreferencesを使用することができます。

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION); 
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Ringtone"); 
if (mRingtoneUri != null) { 
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, Uri.parse(mRingtoneUri)); 
} else { 
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri) null); 
} 
startActivityForResult(intent, RINGTONE_REQUEST); 

上記のコードでは、システムから着信音を選択するように求められます。彼らはいずれかを選択すると、あなたはActivity結果を処理する必要があります。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == RINGTONE_REQUEST && resultCode == RESULT_OK) { 
     Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 
     SharedPreferences preferences = getSharedPreferences(PREF, MODE_PRIVATE); 
     Editor editor = preferences.edit(); 
     if (uri == null) 
      editor.putString(RINGTONE, null); 
     else 
      editor.putString(RINGTONE, uri.toString()); 
     editor.commit(); 
     if (uri == null) 
      mRingtoneUri = null; 
     else 
      mRingtoneUri = uri.toString(); 
     } 
    } 
} 

このコードはSharedPreferencesに着信音のURIを保存します。

+0

あなたのコードは、ユーザーがシステムから着メロを選択できるようになりますか? – user1257040

+0

はい。自分で試してみてください。 –

+0

私はこのコードをどこに置くべきですか? – user1257040

関連する問題