0

ここには似たような質問がたくさんあると確信していますが、私が抱えているこの問題を解決するのに役立つものはありませんでした。

メイン メニューとダッシュボード レイアウトがあり、4 つのボタンがあるとします。あいうえお

A を押すと、新しいアクティビティ A が開始されます。このアクティビティ A には、json アイテムを取得するリンクがあります。通常の URL では問題なく動作しますが、edit-text / textview から値を取得しようとするとクラッシュします。

 String url = "http://webservice.xxx.com/webservice/getLocationList.php?lat="+ latValue +"&lng="+ lngValue +"";

latValuelngValueは、私のR.id.testの編集ボックスからのものです。これは、EditTextの XML ファイルです。

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

<EditText
    android:id="@+id/latValue"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"
    android:text="54.9933628" >

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/lngValue"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="9.8595655"
    android:inputType="numberDecimal" /> 
    </LinearLayout>

そして、ここで値を取得してリンクに入れたいと思います。

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


                  EditText lat_source = (EditText)findViewById(R.id.latValue);
here crash -->    Double sourceLat = Double.parseDouble(lat_source.getText().toString());


    EditText lng_source = (EditText)findViewById(R.id.lngValue);
    Double sourceLng = Double.parseDouble(lng_source.getText().toString());


    String url = "http://webservice.xxx.com/webservice/getLocationList.php?lat="+ sourceLat +"&lng="+ sourceLng +"";

    Log.d(TAG, "My URL is = " + url); 

ログ

    02-15 11:37:41.826: E/AndroidRuntime(14267):    at android.os.Looper.loop(Looper.java:137)
    02-15 11:37:41.826: E/AndroidRuntime(14267):    at android.app.ActivityThread.main(ActivityThread.java:4898)
    02-15 11:37:41.826: E/AndroidRuntime(14267):    at java.lang.reflect.Method.invokeNative(Native Method)
    02-15 11:37:41.826: E/AndroidRuntime(14267):    at java.lang.reflect.Method.invoke(Method.java:511)
    02-15 11:37:41.826: E/AndroidRuntime(14267):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
    02-15 11:37:41.826: E/AndroidRuntime(14267):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
    02-15 11:37:41.826: E/AndroidRuntime(14267):    at dalvik.system.NativeStart.main(Native Method)
    02-15 11:37:41.826: E/AndroidRuntime(14267): Caused by: java.lang.NullPointerException
    02-15 11:37:41.826: E/AndroidRuntime(14267):    at com.androidhive.jsonparsing.LocationBased.onCreate(LocationBased.java:69)
    02-15 11:37:41.826: E/AndroidRuntime(14267):    at android.app.Activity.performCreate(Activity.java:5206)
    02-15 11:37:41.826: E/AndroidRuntime(14267):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
    02-15 11:37:41.826: E/AndroidRuntime(14267):    at android.app.ActivityThread.performLaunchActivity
4

1 に答える 1

1
LayoutInflater inflater  = LayoutInflater.from(this);
LinearLayout testLayout = (LinearLayout)inflater.inflate(R.layout.test, null)
EditText lat_source = (EditText)testLayout.findViewById(R.id.latValue);
Double sourceLat = Double.parseDouble(lat_source.getText().toString());

前述のように、 を介してEditTextオブジェクトを取得するにはfindViewById、 を介してビューをビュー階層に追加する必要がありますsetContentView。または、インフレータを使用して、インフレータによって返されたビューのオブジェクトを使用して、EditText

于 2013-02-15T11:13:33.603 に答える