2012-04-03 27 views
0

我試圖做onFragmentResult和RingtoneManager一個糟糕的浪漫


我在這3個片段一個FragmentActivity,這是contectet海槽ViewPager。現在我想通過鈴聲管理器顯示鈴聲或通知。爲此,我創建了一個完美的方法。現在,當我想要從鈴聲管理器獲取數據時,我選擇了一個鈴聲並按下確定。我的onFragmentResult()中沒有任何反應。

問題


我需要做什麼改變,我可以從RingtoneManager結果呢?

守則是波紋管:

問候

野生動物園

代碼


package de.profiler.config; 

import de.profiler.R; 
import de.profiler.listadapter.PhoneAdapter; 
import android.content.Intent; 
import android.media.RingtoneManager; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v4.app.ListFragment; 
import android.view.ContextMenu; 
import android.view.ContextMenu.ContextMenuInfo; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ListView; 
import android.widget.Toast; 

public class Tab2Fragment extends ListFragment{ 

    private static final String[] content ={*******}; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //Nothing todo 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState){ 
     View v = inflater.inflate(R.layout.frag2, container, false); 
     return v; 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     //ListAdapter erzeugen 
     PhoneAdapter adapter = new PhoneAdapter(getActivity(), content); 
     setListAdapter(adapter); 

    } 

    @Override 
    public void onListItemClick(ListView l, View v, int position, long id) { 

     int switch_id = (int) id; 


     switch (switch_id){ 

     case 0: { 
      Toast.makeText(getActivity(), "Case " + switch_id , 500).show(); 
      break; 
     } 

     case 1:{ 
      Toast.makeText(getActivity(), "Case " + switch_id , 500).show(); 
      break; 
     } 

     case 2:{ 

      ringtoneSelecter("ringtone"); 
      break; 
     } 

     case 3:{ 

      ringtoneSelecter("notification"); 
      break; 
     } 

     case 4:{ 
      Toast.makeText(getActivity(), "Case " + switch_id , 500).show(); 
      break; 
     } 

     } 

    } 

    /** 
    * Diese Methode erstellt dynamisch das Dialog-Menu um 
    * einen Ringtone/Notification auszuwählen, dies passiert wie folgt: 
    * what is notification than RingtoneManger.TYPE_NOTIFICATION 
    * what is ringtone than RingtoneManager.TYPE_RINGTONE 
    * what is all than RingtoneManager.TYPE_ALL 
    * @param what 
    */ 
    private void ringtoneSelecter(String what){ 

     String uri = null; 
     Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 

     if(what == "notification"){ 
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, 
        RingtoneManager.TYPE_NOTIFICATION); 
     }else if(what == "ringtone"){ 
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, 
        RingtoneManager.TYPE_RINGTONE); 
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_INCLUDE_DRM, true); 
     }else if(what == "all"){ 
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, 
        RingtoneManager.TYPE_ALL); 
     } 

     intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone"); 
     intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false); 
     intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false); 
     if(uri != null) 
     { 
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, 
     Uri.parse(uri)); 
     } 

     else 
     { 
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, 
     (Uri)null); 
     } 
     startActivityForResult(intent, 999); 
    } 

    public void onFragmentResult(int requestCode, int resultCode, Intent data){ 
     super.onActivityResult(requestCode, resultCode, data); 
    Toast.makeText(getActivity(), "FRAGMENT RESUME WURDE AUFGERUFEN" + data , 500).show(); 
    } 


} 

回答

1

什麼是onFragmentResult ...我認爲它的工作原理與onActivityResult? ...而是如果兩者都在相同的fra gment ..

+0

你不能在片段中使用onActivityResult ...哦哈哈,你可以看到它該死的。 – safari 2012-04-03 12:13:44