0

さて、私がやっていることは、報告して車を見つけた簡単なアプリを追加しようとしていることです。 3番目の画面では、ユーザーが住所を入力して検索ボタンをクリックすると、buttomの小さな地図が見つかったらその場所に移動します。ユーザーが満足している場合は、[送信]ボタンをクリックして次の画面に進むことができます(送信ボタンはまだ完了していません)。エラーのあるGoogleマップの検索機能(Androidスタジオ)

here youtubeに... ...と私は...私はそれがすべてを考え出し思っていたのだけれども、私は私のアプリをテストしたとき、私はニューヨークのような単純なものを入力してみました、と私は致命的なエラーメッセージが表示されます

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: com.example.greyknightdante.roadsideassistance, PID: 7950 
       java.lang.IllegalStateException: Could not execute method for android:onClick 
        at android.view.View$DeclaredOnClickListener.onClick(View.java:4698) 
        at android.view.View.performClick(View.java:5610) 
        at android.view.View$PerformClick.run(View.java:22265) 
        at android.os.Handler.handleCallback(Handler.java:751) 
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6077) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
       Caused by: java.lang.reflect.InvocationTargetException 
        at java.lang.reflect.Method.invoke(Native Method) 
        at android.view.View$DeclaredOnClickListener.onClick(View.java:4693) 
        at android.view.View.performClick(View.java:5610)  
        at android.view.View$PerformClick.run(View.java:22265)  
        at android.os.Handler.handleCallback(Handler.java:751)  
        at android.os.Handler.dispatchMessage(Handler.java:95)  
        at android.os.Looper.loop(Looper.java:154)  
        at android.app.ActivityThread.main(ActivityThread.java:6077)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)  
       Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference 
        at com.example.greyknightdante.roadsideassistance.MapsActivity.onSearch(MapsActivity.java:45) 
        at java.lang.reflect.Method.invoke(Native Method)  
        at android.view.View$DeclaredOnClickListener.onClick(View.java:4693)  
        at android.view.View.performClick(View.java:5610)  
        at android.view.View$PerformClick.run(View.java:22265)  
        at android.os.Handler.handleCallback(Handler.java:751)  
        at android.os.Handler.dispatchMessage(Handler.java:95)  
        at android.os.Looper.loop(Looper.java:154)  
        at android.app.ActivityThread.main(ActivityThread.java:6077)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)  

私はまだAndroidスタジオの新機能を搭載しています。また、現在も気分が悪く、この頭痛でストレートに考えることができません。私はこのアプリを終了する週があるので、私は現在急いでいる....

私はエラーの原因と解決方法を理解できません...私は検索ボタンのonClickかもしれないと感じていますが、私は確信が持てません。 ?どんな助けもありがとう!

相続人は相続人のJava活動

package com.example.greyknightdante.roadsideassistance; 

import android.content.Intent; 

import android.location.Address; 
import android.location.Geocoder; 
import android.support.v4.app.FragmentActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.TextView; 

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; 

import java.io.IOException; 
import java.util.List; 

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback{ 

private GoogleMap mMap; 
public String problem; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_gps); 
    // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 

    //obtain previous data 
    Intent intent = getIntent(); 
    problem = intent.getStringExtra(ReportActivity.EXTRA_MESSAGE); 

} 

public void onSearch(View view){ 
    EditText location_input = (EditText) view.findViewById(R.id.locationInputText); 
    String location = location_input.getText().toString(); 
    List<Address> addressList = null; 

    if(location != null || location.equals("")) { 
     Geocoder geocoder = new Geocoder(this); 
     try { 
      addressList = geocoder.getFromLocationName(location, 1); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     Address address = addressList.get(0); 
     LatLng latLng = new LatLng(address.getLatitude(),address.getLongitude()); 
     mMap.addMarker(new MarkerOptions().position(latLng).title("Marker")); 
     mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng)); 
    } 

} 
@Override 
public void onMapReady(GoogleMap googleMap) { 
    mMap = googleMap; 

    // Add a marker in Sydney and move the camera 
    LatLng sydney = new LatLng(-34, 151); 
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 
} 

と私のマップのセクションと検索機能のための私のコード...

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/gpsLayout"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="What is your location?" 
     android:id="@+id/locationTextView" 
     android:textSize="30dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPostalAddress" 
     android:ems="10" 
     android:id="@+id/locationInputText" 
     android:text="" 
     android:hint="Enter Location..." 
     android:layout_below="@+id/locationTextView" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="27dp" 
     android:background="@color/white" 
     android:textSize="25dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Search" 
     android:id="@+id/enterGPSButton" 
     android:layout_below="@+id/locationInputText" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" 
     android:onClick="onSearch"/> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="250dp" 
     android:layout_below="@+id/locationInputText" 
     android:layout_marginTop="55dp" 
     android:id="@+id/mapLayout"> 
     <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" 
      android:name="com.google.android.gms.maps.SupportMapFragment" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      tools:context="com.example.greyknightdante.roadsideassistance.MapsActivity"/> 

    </RelativeLayout> 

答えて

0

問題は、この行である:

EditText location_input = (EditText) view.findViewById(R.id.locationInputText); 

ここにEditextは添付されていません。onSearch(View view)

ので変更:

 EditText location_input; //declare globally 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_gps); 
    location_input = (EditText)findViewById(R.id.locationInputText); //initialize here 
    } 

を今すぐあなたのonSearch()方法

public void onSearch(View view){ 
String location = location_input.getText().toString(); 
//rest of the code 
} 
+0

にありがとうございました! –

+0

@RamonChristianBustamanteティックサインをクリックすると回答が正しいとマークします – rafsanahmad007

関連する問題