5

は私の問題です。適応chrisbanesアクションバー-PullToRefreshフラグメント(NavigationDrawer)に、ここでオーケー

https://github.com/chrisbanes/ActionBar-PullToRefresh#fragments

Chrisbanesが、これは断片で使用するために書かれています:注意すべき

一つはPullToRefreshAttacherアクティビティのonCreateの()フェーズで を作成する必要があるということです。 このライブラリをFragmentsで使用する場合は、 アクティビティでPullToRefreshAttacherを作成し、 フラグメントでアクティビティから取得することをお勧めします。

例は、フラグメント& Tabsサンプルで提供されています。

****ここで質問来る: 私は私の活動でPullToRefreshAttacherを作成したが、どのように地獄は、私は私のフラグメントにPullToRefreshAttacherを渡すことができますS ****

私はバンドルについて多くを読んだことがあるとは、 putSerializableとParcelableとgetArguments():

Passing an Object from an Activity to a Fragment

と私はまた、どのSTHでこの記事を読んで。このような((MyActivity) getActivity()).getClassX() ;が使用されます。

Call Activity Method From Fragment

しかし、私は本当に理解し何も/働いていました。 :(

。ここ

NavigationActivityと一例fragment.Iは/ Javaの:)

final String[] menuEntries = {"Start","Datum","Website","Kunden"}; 
final String[] fragments = { 
     "com.blabla.MainFragment", 
     "com.blabla.OneFragment", 
     "com.blabla.TwoFragment", 
     "com.blabla.KundenFragment", 
}; 

private ActionBarDrawerToggle drawerToggle; 
private DrawerLayout drawerAdapter; 
private ListView navListAdapter; 




private PullToRefreshAttacher mPullToRefreshAttacher; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


    setContentView(R.layout.navigation_layout); 

    mPullToRefreshAttacher = PullToRefreshAttacher.get(this); 



    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActionBar().getThemedContext(), android.R.layout.simple_list_item_1, menuEntries); 

    final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.refresh_navwiev); 
    final ListView navList = (ListView) findViewById(R.id.drawerMenu); 

    drawerAdapter=drawer; 
    navListAdapter=navList; 

    getActionBar().setDisplayHomeAsUpEnabled(true); 
    getActionBar().setHomeButtonEnabled(true); 


    drawerToggle = new ActionBarDrawerToggle(
      this, 
      drawer, 
      R.drawable.navicon, 
      R.string.drawer_open, 
      R.string.drawer_close 
    ) { 

     /** Called when a drawer has settled in a completely closed state. */ 
     public void onDrawerClosed(View view) { 

     } 

     /** Called when a drawer has settled in a completely open state. */ 
     public void onDrawerOpened(View drawerView) { 

     } 


    }; 

    drawer.setDrawerListener(drawerToggle); 



    navList.setAdapter(adapter); 
    navList.setOnItemClickListener(new OnItemClickListener(){ 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, final int pos,long id){ 
      drawer.setDrawerListener(new DrawerLayout.SimpleDrawerListener(){ 
       @Override 
       public void onDrawerClosed(View drawerView){ 
        super.onDrawerClosed(drawerView); 
        //Runs On completly Closed 
       } 
      }); 

      //Runs Onclick if not same fragment 
      if(getActionBar().getTitle()!= menuEntries[pos]) 
      { 

      Bundle bundle=new Bundle(); 
      bundle.putString("message", "From Activity"); 

      //Fragment zusammenbauen 
      Fragment myFragment=new Fragment(); 
      myFragment = Fragment.instantiate(NavigationActivity.this, fragments[pos]); 
      myFragment.setArguments(bundle); 


       FragmentTransaction tx = getSupportFragmentManager().beginTransaction(); 
       tx.setCustomAnimations(R.anim.fragmentfadein, R.anim.fragmentfadeout); 
       tx.replace(R.id.navigationScreen, myFragment); 

       tx.commit(); 
       getActionBar().setTitle(menuEntries[pos]); 
       drawer.closeDrawer(navList); 
      } 
     } 
    }); 

    Bundle bundle=new Bundle(); 
//  bundle.putInt(PullToRefreshAttacher., position); 

    //Fragment zusammenbauen 
    Fragment myFragment=new Fragment(); 
    myFragment = Fragment.instantiate(NavigationActivity.this, fragments[0]); 
    myFragment.setArguments(bundle); 


     FragmentTransaction tx = getSupportFragmentManager().beginTransaction(); 
     tx.setCustomAnimations(R.anim.fragmentfadein, R.anim.fragmentfadeout); 
     tx.replace(R.id.navigationScreen, myFragment); 

     tx.commit(); 

} 

public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_MENU) { 

     Log.i("FlosTemplate", "Menu Taste Gedrückt"); 

      if(drawerAdapter.isDrawerOpen(navListAdapter)) 
      { 
      drawerAdapter.closeDrawer(navListAdapter); 
      } 
      else 
      { 
      drawerAdapter.openDrawer(navListAdapter); 
      } 

     return true; 
    } 
    return super.onKeyUp(keyCode, event); 
} 

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 
    drawerToggle.syncState(); 
} 

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    drawerToggle.onConfigurationChanged(newConfig); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (drawerToggle.onOptionsItemSelected(item)) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 


} 

とフラグメント

をAndroidに私は新しいですと言わざるを得ないされています
public class MainFragment extends Fragment { 

public static Fragment newInstance(Context context) { 
    MainFragment f = new MainFragment(); 
    return f; 
} 

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



    return rootView; 
} 

} 

誰かが私を助けることができれば非常に親切です、私はこの時点で立ち往生していますまたは日:)

P.S.おそらく悪い言語のため申し訳ありませんが、私はネイティブスピーカーではないよ;)

答えて

3

デモコードはGitHubのページにあります:

https://github.com/chrisbanes/ActionBar-PullToRefresh/blob/master/samples/actionbarcompat/src/java/uk/co/senab/actionbarpulltorefresh/samples/actionbarcompat/FragmentTabsActivity.java

は、あなたの活動にこれを追加します。

public PullToRefreshAttacher getPullToRefreshAttacher() { 
    return mPullToRefreshAttacher; 
} 

これをあなたの断片のonCreateViewに送ります:

PullToRefreshAttacher mPullToRefreshAttacher = ((NavigationActivity) getActivity()).getPullToRefreshAttacher(); 

Aより良いアプローチは、インターフェイスを使用することですが、私はGitHubの例から始めることをお勧めしたいと思います。

+0

私は既にそれを試しました:私は私のナビゲーション活動をインポートするためにvorgotを恥じていました.O.O sry guys:S –

関連する問題