首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onFragmentResult和RingtoneManager糟糕的爱情故事

onFragmentResult和RingtoneManager糟糕的爱情故事
EN

Stack Overflow用户
提问于 2012-04-03 11:57:36
回答 1查看 1.9K关注 0票数 0

我想做什么,

我得到了一个包含3个片段的FragmentActivity,这些片段是通过一个ViewPager实现的.现在我想在RingtoneManager上显示铃声或Notification音调。为此,我创建了一个方法,它工作得很好。现在,当我想从RingtoneManger获得数据时,我选择一个音调,然后按OK键。在我的onFragmentResult()中什么都不会发生。

问题

我需要改变什么,才能从RingtoneManager中得到结果?

该守则如下:

诚挚的问候

safari

代码语言:javascript
复制
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();
   }


}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-03 12:11:11

什么是onFragmentResult.?如果两个片段都在同一个片段中,我认为它适用于onActivityResult...instead。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9992763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档