0

基本的に、ユーザーが入力した値をURLに渡して、それに基づいて結果を表示しようとしています....エラーが発生しないため、何が問題なのかよくわかりません。どんな助けでも大歓迎です

ボタンをクリックしても何も起こらない...イベントリスナーが追加されているなど

package com.example.jsonrestclient;

import org.json.JSONException;
import org.json.JSONObject;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
import android.widget.EditText;

public class MainActivity extends Activity {

protected TextView tv1;
protected TextView tv2;
protected TextView tv3;
protected TextView tv4;
protected EditText ET1;
protected String ET2;



 @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tv1 = (TextView) findViewById(R.id.textView1);
        tv2 = (TextView) findViewById(R.id.textView2);
        tv3 = (TextView) findViewById(R.id.textView3);
        tv4 = (TextView) findViewById(R.id.textView4);
        ET1 = (EditText) findViewById(R.id.editText1);
        ET2 = ET1.getText().toString();
    }

    public void button1OnClick(View v) {
        String patientString = HttpHandler.HttpGetExec(HttpHandler.baseURI + ET2);

        String patientFName = "NOT FOUND",
                patientLName = "NOT FOUND",
                DOB = "NOT FOUND",
                patientGender = "NOT FOUND",
                hospitalNumber = "NOT FOUND";
        JSONObject patientObj = null;

        try {
            patientObj = new JSONObject(patientString);
            patientFName = (String) patientObj.get("PatientFName");
            patientLName = (String) patientObj.get("PatientLName");
            DOB = (String) patientObj.get("DOB");
            patientGender = (String) patientObj.get("PatientGender");
            hospitalNumber = (String) patientObj.get("HospitalNumber");
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        tv1.setText(patientFName + " " + patientLName);
        tv2.setText("DOB" + "  " + DOB);
        tv3.setText("Gender" + " " + patientGender);
        tv4.setText("Hospital" + " " + hospitalNumber);

    }
}
4

1 に答える 1

0

njzk2 が言及しているように、ET2 の評価が早すぎます。

onCreate() でこれを行っています。つまり、ユーザーが ET1 に何かを入力する前に ET2 が既に割り当てられているため、常に空になります。

必要なことはET2 = ET1.getText().toString();、 の最初の行のように下に移動することbutton1OnClickです。

ビューxmlbutton1OnClickのパラメーターにバインドされていると思われますか?android:onClick

また、HttpHandler とは何ですか? あなたの輸入品からはわかりませんでした。それが何であるかはわかりませんが、残りの呼び出しを AsyncTask に移動することを検討する価値があるかもしれません。

于 2013-12-26T14:19:07.080 に答える