2012-04-03 73 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