2017-04-07 1 views
0

Hier, was ich versuche, ist Video URL von Fragment, wo ich youtubeFragmentActivity anrufen, wie dies. In Tab2Frag Fragment. Ich rufe youtubeFragmentActivity an.So erhalten Sie die URL für youtube api aus Fragment und setzen Sie auf YoutubeFragment

public class Tab2Frag extends Fragment { 

    public static String PRO_ID; 
    public static String youtube_url1; 

    MainActivity mainActivity; 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_tab2, container, false); 
     new Show_data().execute(); 
     new Adds1().execute(); 

     Bundle data = new Bundle(); 
     data.putString("youtube_details", youtube_url1); 
     System.out.println("@@[email protected]@@"+youtube_url1); 
     YouTubeFragmentActivity youTubeFragmentActivity=new YouTubeFragmentActivity(); 
     youTubeFragmentActivity.setArguments(data); 
     FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 
     transaction.add(R.id.main, youTubeFragmentActivity).commit(); 


     return rootView; 
    } 

    @Override 
    public void onAttach(Activity activity) { 
     // TODO Auto-generated method stub 
     super.onAttach(activity); 
     mainActivity=(MainActivity)activity; 
    } 


    class Show_data extends AsyncTask<String, String, String>{ 

     JSONObject jsonobject; 
     JSONArray jsonarray; 
     ProgressDialog mDialog; 

     @Override 
     protected String doInBackground(String... params) { 
      // TODO Auto-generated method stub 
      Bundle bundle = getActivity().getIntent().getExtras(); 
      PRO_ID = bundle.getString("PRODUCT_ID"); 
      HttpClient httpClient = new DefaultHttpClient(); 
      HttpPost httpPost = new HttpPost("http://towncitycards.com/webservice_action.php?action=get_detail&id="+PRO_ID); 
      try{ 
       HttpResponse response = httpClient.execute(httpPost); 
       String data = inputStreamToString(response.getEntity().getContent()); 
       jsonobject = new JSONObject(data); 
       jsonarray = new JSONArray(jsonobject.getString("detail")); 
       for(int j=0; j<jsonarray.length();j++){ 
        JSONObject itemobj = jsonarray.getJSONObject(j); 
        //SHOW SEARCH RESULT 
        Get_detailsBeams get_detailsBeams = new Get_detailsBeams(); 

        get_detailsBeams.setId(itemobj.getString("ID")); 
        get_detailsBeams.setYoutube(itemobj.getString("youtube_detail")); 
        get_detailsBeams.setTerms_condition(itemobj.getString("terms_condition")); 


        Log.v("Details", itemobj.toString()); 
       } 
      }catch(Exception e){ 
       e.printStackTrace(); 
      } 
      return null; 
     } 

     @Override 
     public void onPostExecute(String result) { 
      super.onPostExecute(result); 

      final String youtube_url; 
       try { 


          youtube_url = jobj.opt("youtube_detail").toString(); 
          System.out.println("@@@@[email protected]"+youtube_url); 
          youtube_url1=youtube_url.replace("https://www.youtube.com/watch?v=",""); 
          System.out.println("@@@@[email protected]"+youtube_url1); 
       } catch (JSONException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       if(mDialog!=null && mDialog.isShowing()){ 
        mDialog.dismiss(); 
       } 
       } 

     } 
    } 

Mein YouTubeFragmentActivity

public class YouTubeFragmentActivity extends Fragment { 
    private FragmentActivity myContext; 
    private YouTubePlayer YPlayer; 
    private static String YOU_TUBE; 

    @Override 
    public void onAttach(Activity activity) { 

     if (activity instanceof FragmentActivity) { 
      myContext = (FragmentActivity) activity; 
     } 

     super.onAttach(activity); 
    } 


     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

      View rootView = inflater.inflate(R.layout.activity_you_tube_api, container, false); 
      Bundle extras = getArguments(); 
      YOU_TUBE = extras.getString("youtube_details"); 
      System.out.println("@@@@@@@@@@@@@"+YOU_TUBE+"@@@@@@@2"); 
      YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance(); 
      FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 
      transaction.add(R.id.youtube_fragment, youTubePlayerFragment).commit(); 

      youTubePlayerFragment.initialize("DEVELOPER_KEY", new OnInitializedListener() { 
       @Override 
       public void onInitializationSuccess(Provider provider, YouTubePlayer youTubePlayer, boolean b) { 
        if (!b) { 
         YPlayer = youTubePlayer; 
         YPlayer.loadVideo(YOU_TUBE); 
         YPlayer.play(); 
        } 
       } 
       @Override 
       public void onInitializationFailure(Provider provider, YouTubeInitializationResult error) { 
        // YouTube error 
        String errorMessage = error.toString(); 
        Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_LONG).show(); 
        Log.d("errorMessage:", errorMessage); 
       } 
      }); 
     return rootView; 
     } 


} 

Log:

####Ashu in preExecute 
@@[email protected]@@Vij0z6NS5BE 
@@@@@@@@@@@@@[email protected]@@@@@@2 
@@@@[email protected]://www.youtube.com/watch?v=Vij0z6NS5BE 
@@@@[email protected] 
[email protected]@@@50.86947 

Antwort

0

Dieses quitely altes Thema wird jedoch wissen zu lassen, alle anderen das Problem, das ich die Zukunft, lassen Sie diese

überprüfen
SearchResult singleVideo = iteratorSearchResults.next(); 
ResourceId rId = singleVideo.getId(); 

Bringen Sie einfach rId.getVideoId() auf youtube.com/watch?v= und Sie haben die URL.

String url = "youtube.com/watch?v=" + rId.getVideoId(); 

Wenn Sie bekommen eigene String url Sie geben Ihre Daten mithilfe zu bündeln wie diese

Bundle bundle = new Bundle(); 
bundle.putString(YOUR_TAG, YOUR_STRING_URL); 
YourFragment mYourFragment = new YourFragment(); 
mYourFragment.setArguments(bundle); 

//Do your fragment transaction 
Verwandte Themen