Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 导航抽屉内onClick按钮的startactivity不工作_Android_Onclick_Fragment_Navigation Drawer - Fatal编程技术网

Android 导航抽屉内onClick按钮的startactivity不工作

Android 导航抽屉内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

我想从navigationdrawer中的HomeF.java创建MapaQRF.java的startActivity。 我的意思是,我希望onclick(按钮)与onNavigationDrawerItemSelected(在MapaQRF pocision中)执行相同的操作

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>
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);
}