2017-08-28 13 views
-1

私は新しいプロジェクトタブビューを作成しました。私は私のメイン画面で3つのレイアウトをしたい1st home 2nd category 3rd favorite。コードがここにあるフラグメントアクティビティのホームアクティビティのコードがありますアクティビティのデータをフラグメントクラスに渡すにはどうすればいいですか?

public class HomeFragment extends android.support.v4.app.Fragment { 

    public HomeFragment() { 

    } 



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


    } 
} 

と私はビデオプレイリストである別のアクティビティを持っています。私は私のホームの断片のページにプレイリストの活動を表示したいが、私はあまりにも混乱していて、Androidの新しい私は何をすべきかわからない。

ビデオ再生リストのコードはこちらです。 homeFragmentクラスでこのコードをどのように呼び出すことができますか?私はあまりにも多くの方法を試しましたが、混乱しました。

コードは、私は私の自宅のセクション

public ProgressBar nextBar; 

List<String> next_title; 
List title; 
List vid; 
List<String> next_vid; 
ArrayList<Videos> videos=new ArrayList<Videos>(); 
Videos video; 
ArrayList<Videos> toclear=new ArrayList<Videos>(); 
List<Videos> fav = new ArrayList<Videos>(); 
InterstitialAd mInterstitialAd; 
ListView listview; 
Toolbar toolbar,favourite; 
int menu_id; 
LinearLayout layout, no_fav; 
private HttpHandler parserVideo; 
String nextPageToken; 
String apiKey = "AIzaSyDD73ZAzcR6bXa1qOv8YZY3fFmNwfTPs48"; 
String url; 
Main_activity_adapter search; 
Main_activity_adapter adapter; 

String url_home= "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=15&playlistId=PLQGGrzFoybiOks7f2BReNzNwkRw3cN6RB&key="+apiKey+""; 



@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.video_sec); 
    nextBar = (ProgressBar) findViewById(R.id.nextProgress); 
    layout = (LinearLayout) findViewById(R.id.linlaHeaderProgress); 
    url = url_home; 
    listview = (ListView) findViewById(R.id.listview); 
    no_fav = (LinearLayout)findViewById(R.id.no_favourit); 
    no_fav.setVisibility(View.GONE); 


    parserVideo = new HttpHandler();  
    getVideosPlaylist videosplaylist = new getVideosPlaylist(); 
    videosplaylist.execute(); 



    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 


    listview.setOnScrollListener(this); 




} 



@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    final MenuItem myActionMenuItem = menu.findItem(R.id.action_search); 
    final SearchView searchView = (SearchView) myActionMenuItem.getActionView(); 
    final String toolbar_name = toolbar.getTitle().toString(); 
    MenuItemCompat.setOnActionExpandListener(myActionMenuItem, new MenuItemCompat.OnActionExpandListener() { 
     @Override 
     public boolean onMenuItemActionExpand(MenuItem item) { 
      return true; 
     } 

     @Override 
     public boolean onMenuItemActionCollapse(MenuItem item) { 
      updateList(); 
      return true; 
     } 
    }); 
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      return false; 
     } 

     @Override 
     public boolean onQueryTextChange(String s) { 

      if (!s.isEmpty()) { 
       setSearch(); 
       search.getFilter().filter(s); 


      } 
      return false; 
     } 
    }); 

    return true; 
}// end of toolbar control 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    int id = item.getItemId(); 

    return super.onOptionsItemSelected(item); 
} 
public void updateList(){ 

    adapter = new Main_activity_adapter(this, videos, false); 

    listview.setAdapter(adapter); 

    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

             public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 



               Videos v = (Videos) adapter.getItemAtPosition(arg2); 
               Intent n = new Intent(Videos_activity.this, PlayingVideo.class); 
               n.putExtra("vid", v.getVid().toString()); 
               n.putExtra("title", v.getTitle().toString()); 
               startActivity(n); 

             } 
            } 

    ); 
} 

JSONObject jp_obj; 
JSONArray jar_array; 

@Override 
public void onScrollStateChanged(AbsListView view, int scrollState) { 

} 

@Override 
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
    String toolbar_check = toolbar.getTitle().toString(); 

    switch(view.getId()){ 
     case R.id.listview: 
      final int lastItem = firstVisibleItem + visibleItemCount; 
      if (lastItem == totalItemCount) { 
       if(toolbar_check!="Favourites") { 
        OnScrollList onscroll = new OnScrollList(); 
        onscroll.execute(); 
       } 
      } 

    } 
} 


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


    @Override 
    protected String doInBackground(String... params) { 

     jp_obj = parserVideo.getJsonFromYoutube(url); 

     try { 
      if (jp_obj.has("nextPageToken")) { 
       nextPageToken = jp_obj.getString("nextPageToken"); 

      } 
      jar_array = new JSONArray(jp_obj.getString("items")); 

      if(jp_obj != null) { 
       JSONObject c = jar_array.getJSONObject(0); 
       String json_check = c.getJSONObject("snippet").getString("title"); 
       if (json_check == null) { 

       } else { 
        title = new ArrayList<String>(jar_array.length()); 
        vid = new ArrayList<>(jar_array.length()); 
        for (int j = 0; j < jar_array.length(); j++) { 
         c = jar_array.getJSONObject(j); 
         String str = c.getJSONObject("snippet").getString("title"); 
         str = new String(str.replaceAll("\\['\\]", "")); 
         String link = c.getJSONObject("snippet").getJSONObject("resourceId").getString("videoId"); 
         video = new Videos(str, link); 
         videos.add(video); 
        } 
       } 

      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 
    @Override 
    protected void onCancelled(){ 
     super.onCancelled(); 
    } 
    @Override 
    protected void onPreExecute() { 

     layout.setVisibility(View.VISIBLE); 
     super.onPreExecute(); 
    } 

    @Override 
    protected void onPostExecute(String s) { 
     updateList(); 
     layout.setVisibility(View.GONE); 
     cancel(true); 
     super.onPostExecute(s); 

    } 
} 
class OnScrollList extends AsyncTask<String,String,String>{ 


    @Override 
    protected String doInBackground(String... params) { 
     if (nextPageToken!=null){ 
      String nextPage = "&pageToken="+nextPageToken+""; 

      JSONObject next = parserVideo.getJsonFromYoutube(url+nextPage); 

      try { 

       JSONArray array = new JSONArray(next.getString("items")); 
       if (next != null) { 
        JSONObject c = array.getJSONObject(0); 
        String json_check = c.getJSONObject("snippet").getString("title"); 
        if (json_check == null) { 

        } else { 
         next_title = new ArrayList<String>(array.length()); 
         next_vid = new ArrayList<String>((array.length())); 
         for (int j = 0; j < array.length(); j++) { 
          c = array.getJSONObject(j); 
          String str = c.getJSONObject("snippet").getString("title"); 
          str = new String(str.replaceAll("\'", "")); 
          next_title.add(str); 
          String nextLink = c.getJSONObject("snippet").getJSONObject("resourceId").getString("videoId"); 
          next_vid.add(nextLink); 
          video = new Videos(str, nextLink); 
          toclear.add(video); 
         } 
        } 


       }if (next.has("nextPageToken")){ 
        nextPageToken = next.getString("nextPageToken"); 
       }else if(!next.has("nextPageToken")){ 
        nextPageToken = null;} 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

     } 
     return null; 
    } 
    @Override 
    protected void onCancelled(){ 
     super.onCancelled(); 
    } 

    @Override 
    protected void onPostExecute(String s) { 
     videos.addAll(toclear); 
     adapter.notifyDataSetChanged(); 
     nextBar.setVisibility(View.GONE); 
     toclear.clear(); 
     cancel(true); 
     super.onPostExecute(s); 
    } 

    @Override 
    protected void onPreExecute() { 
     nextBar.setVisibility(View.VISIBLE); 
     super.onPreExecute(); 
    } 
} 
public void setSearch() 
{ 
    search = new Main_activity_adapter(Videos_activity.this, videos, true); 
    listview.setAdapter(search); 
    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

             public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 


               Videos v = (Videos)search.getItemAtPosition(arg2); 
               Intent n = new Intent(Videos_activity.this, PlayingVideo.class); 
               n.putExtra("vid", v.getVid().toString()); 
               n.putExtra("title", v.getTitle().toString()); 
               startActivity(n); 

             } 
            } 

    ); 
} 

public void favouritList(){ 
    Main_activity_adapter favourit_adapter = new Main_activity_adapter(this, videos, false); 
    listview.setAdapter(favourit_adapter); 
    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

             public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 


              Videos v = (Videos) adapter.getItemAtPosition(arg2); 
              Intent n = new Intent(Videos_activity.this, PlayingVideo.class); 
              n.putExtra("vid", v.getVid().toString()); 
              n.putExtra("title", v.getTitle().toString()); 
              startActivity(n); 
             } 
            } 

    ); 
} 
+0

メソッドを作成し、メソッドを直接呼び出すmアクティビティ –

+0

どうすればメソッドplsを作成することができますか少しのアイデア –

+0

単なるパブリックメソッドと直接参照を参照してください –

答えて

0

まずで実装したいここで、あなたはその逆はない、アクティビティの断片が含まれていることを理解する必要があります。

  • 3)お気に入り
  • は活動からのデータを送信するには

    • 1)ホーム
    • 2)カテゴリー:だからあなたのアイデアが叶うようにする一つの方法は、あなたの活動は3つのフラグメントを含んで作ることです断片化するには通常Bundleオブジェクトを使用します。 次に、フラグメントのインスタンスを作成し、そこにバンドルをsetArguments(yourBundle)メソッドで配置します。

      詳細を知りたい場合は公式文書を読んで、SOFで検索してください。

    0

    今あなたが使用test1

    0

    testの価値を持っているString test1=ActivityName.test;ようにそれを取得し、その後FragmentActivitypublic static String test="";のような変数を定義しBundle

    Fragment fragment = new YourFragment(); 
    Bundle bundle = new Bundle(); 
    bundle.putString("yourArg","yourType"); //this could be String, int, float,etc 
    fragment.setArguments(bundle); 
    getSupportFragmentManager().beginTransaction().replace(R.id.yourContainer,fragment).commit(); 
    

    とで

    あなたのフラグメントの onCreateView

    Bundle bundle = getArguments(); 
    
    関連する問題