2015-05-09 72 views
0

我想從homedraw.java內的navigationdrawer中的MapaQRF.java開始一個startActivity。 我的意思是,我想的onclick(按鈕)做相同onNavigationDrawerItemSelected(在MapaQRF pocision)startlick在navigationdrawer裏面的onClick按鈕不起作用(已修正)

fragment_home.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" tools:context="cl.bikepurranque.www.bikeqrf.HomeF"> 

    <Button 
     android:layout_width="190dp" 
     android:layout_height="wrap_content" 
     android:text="Mapa Paraderos QR" 
     android:id="@+id/btnMap" 
     android:layout_gravity="center_horizontal|top" 
     android:layout_marginTop="10dp" 
     android:layout_marginLeft="40dp" 
     android:onClick="onClickMap"/> 
</FrameLayout> 

HomeF.java(這裏的問題)

public void onClickMap(View view){ 
    Intent intent = new Intent(this.getActivity(), MapaQRF.class); 
    startActivity(intent); 
} 

NavDrawer.java

@Override 
public void onNavigationDrawerItemSelected(int position) { 
// update the main content by replacing fragments 
    FragmentManager fragmentManager = getSupportFragmentManager(); 
    Fragment fragment = null; 

    switch (position){ 
     case 0: 
      fragment = new MapaQRF(); 
      fragmentManager.beginTransaction() 
        .replace(R.id.container, fragment) 
        .commit(); 
      break; 
     case 1: 
      fragment = new DetectarQRF(); 
      fragmentManager.beginTransaction() 
        .replace(R.id.container, fragment) 
        .commit(); 
      break; 
     case 2: 
      Intent intent = new Intent(this, Login.class); 
      startActivity(intent); 
      break; 
    } 

} 

*修正 問題在於當我需要調用片段時調用一個活動。

除去: 「機器人:的onClick =」 onClickMap 「」 上按鈕(fragment_home.xml)

在HomeF.java 加入(onCreateView)方法
btnMap =(按鈕)rootView.findViewById(R.id .btnMap);

btnMap.setOnClickListener(this);

@Override 
public void onClick(View v) { 
    if (v == btnMap){ 
     FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
     android.support.v4.app.Fragment fragment = null; 
     fragment = new MapaQRF(); 
     fragmentManager.beginTransaction() 
       .replace(R.id.container, fragment) 
       .commit(); 
    } 
} 

謝謝大家!

+0

fragment_home.xml –

+0

的後完整的代碼你的問題似乎有點不清楚 –

+0

安置自己的崩潰日誌。 – Meenaxi

回答

0

嘗試使用getActivity()

public void onClickMap(View view){ 
    Intent intent = new Intent(getActivity(), MapaQRF.class); 
    getActivity().startActivity(intent); 
}