Android 导航抽屉内onClick按钮的startactivity不工作
我想从navigationdrawer中的HomeF.java创建MapaQRF.java的startActivity。 我的意思是,我希望onclick(按钮)与onNavigationDrawerItemSelected(在MapaQRF pocision中)执行相同的操作 fragment_home.xmlAndroid 导航抽屉内onClick按钮的startactivity不工作,android,onclick,fragment,navigation-drawer,Android,Onclick,Fragment,Navigation Drawer,我想从navigationdrawer中的HomeF.java创建MapaQRF.java的startActivity。 我的意思是,我希望onclick(按钮)与onNavigationDrawerItemSelected(在MapaQRF pocision中)执行相同的操作 fragment_home.xml <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 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>
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;
}
}
固定的 问题是,当我需要调用片段时,我正在调用一个活动 删除按钮(fragment\u home.xml)上的“android:onClick=“onClickMap”) 添加到HomeF.java中 (onCreateView)方法
btnMap=(按钮)rootView.findviewbyd(R.id.btnMap) btnMap.setOnClickListener(这个)
尝试使用
getActivity()
发布fragment_home.xml的完整代码您的问题似乎有点不清楚发布崩溃日志。谢谢,日志帮助我找到了具体的错误。请将您的解决方案转移到它自己的答案。
@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;
}
}
@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();
}
}
public void onClickMap(View view){
Intent intent = new Intent(getActivity(), MapaQRF.class);
getActivity().startActivity(intent);
}