繁体   English   中英

单击“ Android Button”以启动新活动不会执行任何操作

[英]Android Button to launch new activity does not do anything when clicked

我已经设置好了,所以OnClick应该启动一个新的活动,但是当我按下按钮(button1)时什么也没发生。 我希望它打开我的Google Maps功能,但是不起作用。 它不会崩溃,也不会发生任何事情,当我按下应该启动MainActivity和activity_main.xml的button1时,什么也不会发生。 LogCat都不会给我任何有用的信息。

MainMenu.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    tools:context=".NewActivity" >


    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Club Deals"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="GPS locations" 
        android:onClick="OnClickListener"/>
    <Button
        android:id="@+id/button2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Closest Deals"
        android:onClick="open_close_deals" />

    <Button
        android:id="@+id/button6"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Cheapest Deals"
        android:onClick="open_cheap_deals" />


    <Button
        android:id="@+id/button7"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Best Value Deals"
        android:onClick="best_value" />

    <Button
        android:id="@+id/button8"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Best Events"
        android:onClick="best_events" />

    <Button
        android:id="@+id/button9"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="News" 
        android:onClick="news"/>
</LinearLayout>

这是我的菜单启动活动:

package com.kieranmaps.v2maps;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.json.JSONObject;

import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.PolylineOptions;

public class NewActivity extends FragmentActivity {


public void addListenerOnButtonNews() {


Button button = (Button) findViewById(R.id.button9);

button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

        Intent intent = new Intent(getApplicationContext(), NewActivity.class);
        startActivity(intent);   

    }
});

}

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



public void addListenerButtonGPS() {

Button button = (Button) findViewById(R.id.button1);

button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
   startActivity(intent);   
    setContentView(R.layout.activity_main);

}});  
}  
}

这是活动,应该会发布GPS地图

主要活动:

package com.kieranmaps.v2maps;

import java.util.Hashtable;
import android.content.Context;
import android.location.Location;
import android.app.ActivityManager;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.InfoWindowAdapter;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.kieranmaps.v2maps.R;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.FIFOLimitedMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.assist.SimpleImageLoadingListener;

public class MainActivity extends FragmentActivity {

    private GoogleMap googleMap;
    private final LatLng OREILLYS = new LatLng(53.348347, -6.254119);
    private final LatLng LAGOONA = new LatLng(53.349810, -6.243160);
    private final LatLng COPPERS = new LatLng (53.335356, -6.263481);
    private final LatLng WRIGHTS = new LatLng (53.445491, -6.223857);
    private final LatLng ACADEMY = new LatLng (53.348045,-6.26198);
    private final LatLng DICEYS = new LatLng (53.347250, -6.254198);
    private final LatLng PYGMALION = new LatLng (53.342183,-6.262358);
    private final LatLng FIBBERS = new LatLng (53.352799,-6.260412);
//  private final LatLng TEST = new LatLng (5352799,-6.260412);


    private Marker marker;
    private Hashtable<String, String> markers;
    private ImageLoader imageLoader;
    private DisplayImageOptions options;

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

        googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                .getMap();

        initImageLoader();
        markers = new Hashtable<String, String>();
        imageLoader = ImageLoader.getInstance();

        options = new DisplayImageOptions.Builder()
            .showStubImage(R.drawable.ic_launcher)      //  Display Stub Image
            .showImageForEmptyUri(R.drawable.ic_launcher)   //  If Empty image found
            .cacheInMemory()
            .cacheOnDisc().bitmapConfig(Bitmap.Config.RGB_565).build();

        if ( googleMap != null ) {

            googleMap.setInfoWindowAdapter(new CustomInfoWindowAdapter());

            final Marker oreillys = googleMap.addMarker(new MarkerOptions().position(OREILLYS)
                        .title("O Reillys"));
            markers.put(oreillys.getId(), "http://img.india-forums.com/images/100x100/37525-a-still-image-of-akshay-kumar.jpg");

            googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(OREILLYS, 15));
            googleMap.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);

            final Marker coppers = googleMap.addMarker(new MarkerOptions().position(COPPERS)
                    .title("Coppers"));
            markers.put(coppers.getId(), "http://f3.thejournal.ie/media/2011/11/coppers1-390x285.png");

            final Marker wrights = googleMap.addMarker(new MarkerOptions().position(WRIGHTS)
                    .title("The Wright Venue"));
            markers.put(wrights.getId(), "http://www.turbosound.com/public/images/news_img_thumbs/Wright_Venue_Dancefloor-thumb.jpg");

            final Marker lagoona = googleMap.addMarker(new MarkerOptions().position(LAGOONA)
                    .title("The Lagoona"));
            markers.put(lagoona.getId(), "http://www.turbosound.com/public/images/news_img_thumbs/Wright_Venue_Dancefloor-thumb.jpg");

            final Marker academy = googleMap.addMarker(new MarkerOptions().position(ACADEMY)
                    .title("The Academy"));
            markers.put(academy.getId(), "http://www.turbosound.com/public/images/news_img_thumbs/Wright_Venue_Dancefloor-thumb.jpg");

            final Marker pygmalion = googleMap.addMarker(new MarkerOptions().position(PYGMALION)
                    .title("The Pygmalion"));
            markers.put(pygmalion.getId(), "http://www.turbosound.com/public/images/news_img_thumbs/Wright_Venue_Dancefloor-thumb.jpg");

            final Marker fibbers = googleMap.addMarker(new MarkerOptions().position(FIBBERS)
                    .title("Fibbers"));
            markers.put(fibbers.getId(), "http://www.turbosound.com/public/images/news_img_thumbs/Wright_Venue_Dancefloor-thumb.jpg");

            final Marker diceys = googleMap.addMarker(new MarkerOptions().position(DICEYS)
                    .title("Dicey's"));
            markers.put(diceys.getId(), "https://dublinnow.files.wordpress.com/2012/05/diceys.jpg");

     /*     final Marker diceys = googleMap.addMarker(new MarkerOptions()
            .position(DICEYS)
            .title("Diceys")
            .snippet("Drink Deal: 3.50. Adm: 5, Performance: Gen"));

            Marker marker = GoogleMap.addMarker(new MarkerOptions()
            .position(latLng)
            .title("Title")
            .snippet("Snippet")
            .icon(BitmapDescriptorFactory
            .fromResource(R.drawable.marker))); */

//marker.showInfoWindow();
        }

    }

    private class CustomInfoWindowAdapter implements InfoWindowAdapter {

        private View view;

        public CustomInfoWindowAdapter() {
            view = getLayoutInflater().inflate(R.layout.custom_info_window,
                    null);
        }

        @Override
        public View getInfoContents(Marker marker) {

            if (MainActivity.this.marker != null
                    && MainActivity.this.marker.isInfoWindowShown()) {
                MainActivity.this.marker.hideInfoWindow();
                MainActivity.this.marker.showInfoWindow();
            }
            return null;
        }

        @Override
        public View getInfoWindow(final Marker marker) {
            MainActivity.this.marker = marker;

            String url = null;

            if (marker.getId() != null && markers != null && markers.size() > 0) {
                if ( markers.get(marker.getId()) != null &&
                        markers.get(marker.getId()) != null) {
                    url = markers.get(marker.getId());
                }
            }
            final ImageView image = ((ImageView) view.findViewById(R.id.badge));

            if (url != null && !url.equalsIgnoreCase("null")
                    && !url.equalsIgnoreCase("")) {
                imageLoader.displayImage(url, image, options,
                        new SimpleImageLoadingListener() {
                            @Override
                            public void onLoadingComplete(String imageUri,
                                    View view, Bitmap loadedImage) {
                                super.onLoadingComplete(imageUri, view,
                                        loadedImage);
                                getInfoContents(marker);
                            }
                        });
            } else {
                image.setImageResource(R.drawable.ic_launcher);
            }
//
            final String title = marker.getTitle();
            final TextView titleUi = ((TextView) view.findViewById(R.id.title));
            if (title != null) {
                titleUi.setText(title);
            } else {
                titleUi.setText("");
            }

            final String snippet = marker.getSnippet();
            final TextView snippetUi = ((TextView) view
                    .findViewById(R.id.snippet));
            if (snippet != null) {
                snippetUi.setText(snippet);
            } else {
                snippetUi.setText("");
            }

            return view;
        }
    }

    private void initImageLoader() {
        int memoryCacheSize;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR) {
            int memClass = ((ActivityManager) 
                    getSystemService(Context.ACTIVITY_SERVICE))
                    .getMemoryClass();
            memoryCacheSize = (memClass / 8) * 1024 * 1024;
        } else {
            memoryCacheSize = 2 * 1024 * 1024;
        }
        googleMap.setMyLocationEnabled(true);           
        final ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
                this).threadPoolSize(5)
                .threadPriority(Thread.NORM_PRIORITY - 2)
                .memoryCacheSize(memoryCacheSize)
                .memoryCache(new FIFOLimitedMemoryCache(memoryCacheSize-1000000))
                .denyCacheImageMultipleSizesInMemory()
                .discCacheFileNameGenerator(new Md5FileNameGenerator())
                .tasksProcessingOrder(QueueProcessingType.LIFO).enableLogging() 
                .build();

        ImageLoader.getInstance().init(config);
    }
    public void onLocationChanged(Location loc){
        googleMap.setMyLocationEnabled(true);               
    }  
}   

表现:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kieranmaps.v2maps"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <permission
        android:name="com.ngshah.googlemapv2.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.ngshah.googlemapv2.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" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyACv08wBcZ2io9lTwm2OYY1XnSx4CvT8nE" />
<meta-data android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" />
        <activity
            android:name="com.kieranmaps.v2maps.MainActivity"
            android:label="@string/app_name" >

        </activity>
        <activity
            android:name="com.kieranmaps.v2maps.NewActivity"
            android:label="@string/new_name">
                  <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>  

Mapview(称为activity_main.xml)

<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"
    tools:context=".MainActivity" >

    <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment" />

</RelativeLayout>

尝试更改两个按钮的名称,以便在不同方法中没有相同的变量名称。

据我所知,您不会将public void addListenerOnButtonNews()public void addListenerButtonGPS()称为任何软件。您只需声明它们即可。 尝试将来自这两个方法的代码放入onCreate()中,并为每个按钮使用不同的名称,如下例所示:

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

Button button1 = (Button) findViewById(R.id.button1);

button1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
   startActivity(intent);   
}}); 

Button button9 = (Button) findViewById(R.id.button9);

button9.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

        Intent intent = new Intent(getApplicationContext(), NewActivity.class);
        startActivity(intent);   

    }
});
}

我还删除了setContentView(R.layout.activity_main); from button1 onclick方法,因为它不需要。

我认为主要问题在于:

Button button = (Button) findViewById(R.id.button9);

Button button = (Button) findViewById(R.id.button1);

您创建了具有相同名称的Button引用。尝试更改其中任何一个,例如:

 Button button1 = (Button) findViewById(R.id.button1);

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM