简体   繁体   English

单击片段按钮时调用地图活动

[英]Call map activity on fragment button click

I'm trying to show a map when I click the "View map" button in my fragment it crashes, "Unfortunately "appname" has stopped" Please help me with me. 当我在片段中单击“查看地图”按钮时,它试图崩溃,这是我试图显示的地图,“不幸的是,“ appname”已停止”,请帮助我。

Homefrag.java this is where my button is. Homefrag.java,这是我的按钮所在的位置。

package com.example.nardx.traveldirectoryzc;


import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ViewFlipper;

/**
 * Created by nardx on 10/5/2016.
 */
public class HomeFrag extends Fragment {
View myView;
Button btnView1;
Context context;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    myView = inflater.inflate(R.layout.home, container, false);
    context = myView.getContext();
    ViewFlipper MyViewFlipper = (ViewFlipper)myView.findViewById(R.id.viewflipper);
    MyViewFlipper.setAutoStart(true);
    MyViewFlipper.setFlipInterval(3000);
    MyViewFlipper.startFlipping();
    btnView1 = (Button)myView.findViewById(R.id.btton1);
    btnView1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent = new Intent(context, GoogleMaps.class);
            getActivity().startActivity(myIntent);
        }
    });
    return myView;
}
}

This is he xml file of my home.xml 这是我的home.xml的xml文件

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<ViewFlipper
android:id="@+id/viewflipper"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scaleType="fitStart"
    android:src="@drawable/zamboanga1"/>
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scaleType="fitStart"
    android:src="@drawable/stacruz3"/>
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scaleType="fitStart"
    android:src="@drawable/sta1"/>

<TextView
    android:id="@+id/textv1"
    android:layout_below="@id/viewflipper"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Zamboanga City is called “Asia’s Latin City” because of its Spanish-tinged Chabacano dialect – dating back to the earliest foreign occupation of the Philippines in the 1600’s. This musical language is a huge part of Zamboangeño culture. You’ll find a lot of its influence in local song and dance."
/>
<Button
    android:id="@+id/btton1"
    android:layout_below="@id/textv1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@id/textv1"
    android:onClick="dismissListener"
    android:text="View Map"/>
</RelativeLayout>

This is the activity of my google map GoogleMap.java 这是我的谷歌地图GoogleMap.java的活动

package com.example.nardx.traveldirectoryzc;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class GoogleMaps extends AppCompatActivity implements OnMapReadyCallback{


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.google_maps);


    SupportMapFragment mapFragment= (SupportMapFragment)     getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
}
public void onMapReady(GoogleMap googleMap){
    LatLng sydney = new LatLng(-33.867, 151.206);

    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 13));

    googleMap.addMarker(new MarkerOptions()
            .title("Sydney")
            .snippet("The most populous city in Australia.")
            .position(sydney));
}

}

And lastly the xml for googlemap 最后是googlemap的xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.nardx.traveldirectoryzc.GoogleMaps">

 <fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.nardx.traveldirectoryzc.GoogleMaps"
    />
</RelativeLayout>

This is the only thing I need to do to finish this project. 这是完成此项目所需要做的唯一一件事。 Hopefully someone will help me. 希望有人会帮助我。 Logcat Error Logcat错误

    10-10 18:30:39.710 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.example.nardx.traveldirectoryzc.MainActivity.access$super
10-10 18:30:39.711 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.example.nardx.traveldirectoryzc.MainActivity.access$super
10-10 18:30:39.712 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.media.session.MediaController', referenced from method com.example.nardx.traveldirectoryzc.MainActivity.access$super
10-10 18:30:39.712 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.widget.Toolbar', referenced from method com.example.nardx.traveldirectoryzc.MainActivity.access$super
10-10 18:30:39.721 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.app.ActivityManager$TaskDescription', referenced from method com.example.nardx.traveldirectoryzc.MainActivity.access$super
10-10 18:30:39.726 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.app.SharedElementCallback', referenced from method com.example.nardx.traveldirectoryzc.MainActivity.access$super
10-10 18:30:39.727 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.example.nardx.traveldirectoryzc.MainActivity.access$super
10-10 18:30:39.735 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.app.SharedElementCallback', referenced from method com.example.nardx.traveldirectoryzc.MainActivity.access$super
10-10 18:30:39.747 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.app.assist.AssistContent', referenced from method com.example.nardx.traveldirectoryzc.MainActivity.access$super
10-10 18:30:39.750 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.view.SearchEvent', referenced from method com.example.nardx.traveldirectoryzc.MainActivity.access$super
10-10 18:30:39.762 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.example.nardx.traveldirectoryzc.MainActivity.access$super
10-10 18:30:39.905 18402-18402/com.example.nardx.traveldirectoryzc E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
10-10 18:31:04.772 18402-18402/com.example.nardx.traveldirectoryzc E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                 Process: com.example.nardx.traveldirectoryzc, PID: 18402
                                                                                 android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.nardx.traveldirectoryzc/com.example.nardx.traveldirectoryzc.GoogleMaps}; have you declared this activity in your AndroidManifest.xml?
                                                                                     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1634)
                                                                                     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1430)
                                                                                     at android.app.Activity.startActivityForResult(Activity.java:3509)
                                                                                     at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48)
                                                                                     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75)
                                                                                     at android.app.Activity.startActivityForResult(Activity.java:3461)
                                                                                     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:856)
                                                                                     at android.app.Activity.startActivity(Activity.java:3712)
                                                                                     at android.app.Activity.startActivity(Activity.java:3680)
                                                                                     at com.example.nardx.traveldirectoryzc.HomeFrag$1.onClick(HomeFrag.java:37)
                                                                                     at android.view.View.performClick(View.java:4472)
                                                                                     at android.view.View$PerformClick.run(View.java:18779)
                                                                                     at android.os.Handler.handleCallback(Handler.java:808)
                                                                                     at android.os.Handler.dispatchMessage(Handler.java:103)
                                                                                     at android.os.Looper.loop(Looper.java:193)
                                                                                     at android.app.ActivityThread.main(ActivityThread.java:5333)
                                                                                     at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                     at java.lang.reflect.Method.invoke(Method.java:515)
                                                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
                                                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
                                                                                     at dalvik.system.NativeStart.main(Native Method)

Manifest.xml Manifest.xml

<permission
    android:name="com.myapp.android.locationapi.maps.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

 <uses-permission android:name="com.myapp.android.locationapi.maps.permission.MAPS_RECEIVE" />
 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIzaSyBbLehM0lsP_K27w0TxEDcG7HI5oiJk3ag" />

    <activity android:name=".GoogleMap"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar"
        >
    </activity>
</application>

</manifest>

您logcat显示您的活动之一未在Manifest.xml文件中声明,但我没有将Google Map活动添加到Manifest中。

your code error show activity is not define in Manifest.xml. 您的代码错误显示活动未在Manifest.xml中定义。 So your Activity add in Manifest.xml 因此,您的Activity添加在Manifest.xml中

Add below line 在行下方添加

<activity android:name=".GoogleMaps"
        android:screenOrientation="portrait"/>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在 Map 片段中调用活动方法或整个活动 - How to call activity methods or whole activity in Map Fragment 如何在单击另一个活动中的按钮时在一个活动中创建地图活动? - How to create a map activity in one activity on button click in other activity? Android Navigation Drawer Activity 调用来自 Fragment 的 Click 事件 - Android Navigation Drawer Activity call Click event from Fragment Acivity1 Fragment2 -&gt; Activity2(单击按钮后)-&gt; Activity1 Fragment2 从活动导航到特定片段 - Acivity1 Fragment2 -> Activity2 (after button click) -> Activity1 Fragment2 navigate from activity to specific fragment 如何在片段上监听来自Activity的按钮的单击动作? - How to listen click action of the button which is from Activity on fragment? 如何通过单击按钮使用工具栏在活动中启动片段 - How to start fragment In activity with tool bar by click button 如何在Android Studio中从活动到片段单击意图 - how to intent with on click button from activity to fragment in android studio 单击按钮时从 1 Activity 移动到特定片段。 - Move from 1 Activity to specific fragment on button click. 在主活动文件的片段中的按钮上设置点击侦听器 - Set an on click listener on button in a fragment in the main activity file 使用地图片段活动 - Working with Map Fragment Activity
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM