Advanced Interdisciplinary Projects Lab(AIPLab) 討論區

Please login or register.

請輸入帳號, 密碼以及預計登入時間

新聞:

[開學]105學年第2學期的課程看版開張了 歡迎同學問問題-20170201

作者 主題: [App Client 3] 掛號查詢  (閱讀 1225 次)

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1612
    • 檢視個人資料
[App Client 3] 掛號查詢
« 於: 十二月 21, 2014, 04:45:35 pm »
[App Client 3] 掛號查詢-使用Android Studio
//復習
(1) 請先完成上週的 [Web Client 3] 掛號查詢步驟
####上課教室的電腦有問題,無法開啟模擬器(AVDM)
同學可以到HB73研究室或其他電腦執行模擬器。
(2)app->New->Activity->Blank Activity
新增三個Activities: RegisterActivity, RegResultActivity, QueryActivity

(3) 在manifest/AndroidManifest.xml插入網路權限
程式碼: [Select]
<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
« 最後編輯時間: 一月 13, 2015, 04:30:30 pm 由 admin »
已記錄

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1612
    • 檢視個人資料
回覆: [App Client 3] 掛號查詢
« 回覆文章 #1 於: 一月 13, 2015, 04:22:16 pm »
(4) 打開 /res/layout/activity_main.xml
修改 activity_main.xml
程式碼: [Select]
<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:text="@string/app_title"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="10dp"
        android:text="@string/today_doctor"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <DigitalClock
        android:id="@+id/digitalClock1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="10dp" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView1"
        android:layout_alignTop="@+id/digitalClock1"
        android:text="@string/today_doctor_dummy"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/digitalClock1"
        android:layout_below="@+id/digitalClock1"
        android:layout_marginTop="54dp"
        android:text="@string/app_subtitle1"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView6"
        android:layout_below="@+id/textView6"
        android:layout_marginTop="10dp"
        android:text="@string/to_register"
        android:onClick="showRegisterActivity" />
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_marginLeft="18dp"
        android:layout_toRightOf="@+id/button1"
        android:onClick="showQueryActivity"
        android:text="@string/to_query" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView6"
        android:layout_below="@+id/textView3"
        android:layout_marginTop="15dp"
        android:text="@string/today_order_dummy"
        android:textAppearance="?android:attr/textAppearanceMedium" />
« 最後編輯時間: 一月 13, 2015, 04:24:54 pm 由 admin »
已記錄

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1612
    • 檢視個人資料
回覆: [App Client 3] 掛號查詢
« 回覆文章 #2 於: 一月 13, 2015, 04:28:02 pm »
修改 activity_register.xml
程式碼: [Select]
<RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp" >

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:onClick="onRadioButtonClicked"
            android:text="@string/radio_1" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="onRadioButtonClicked"
            android:text="@string/radio_2" />

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="onRadioButtonClicked"
            android:text="@string/radio_3" />

        <RadioButton
            android:id="@+id/radio3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="onRadioButtonClicked"
            android:text="@string/radio_4" />

        <RadioButton
            android:id="@+id/radio4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="onRadioButtonClicked"
            android:text="@string/radio_5" />

        <RadioButton
            android:id="@+id/radio5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="onRadioButtonClicked"
            android:text="@string/radio_6" />

        <RadioButton
            android:id="@+id/radio6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="onRadioButtonClicked"
            android:text="@string/radio_7" />

    </RadioGroup>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText2"
        android:layout_below="@+id/editText2"
        android:text="@string/label_submit"
        android:onClick="submitRegisterActivity" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_below="@+id/textView3"
        android:ems="10"
        android:inputType="none"
        android:text="@string/patient_name" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="15dp"
        android:text="@string/label_name" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView2"
        android:ems="10"
        android:inputType="text|textCapCharacters"
        android:text="@string/patient_id" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/radioGroup1"
        android:layout_below="@+id/radioGroup1"
        android:text="@string/app_subtitle2"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView6"
        android:layout_below="@+id/textView6"
        android:onClick="showOrderActivity"
        android:text="@string/to_order" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button2"
        android:layout_alignBottom="@+id/button2"
        android:layout_marginLeft="18dp"
        android:layout_toRightOf="@+id/button2"
        android:onClick="showQueryActivity"
        android:text="@string/to_query" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/radioGroup1"
        android:layout_marginRight="60dp"
        android:text="@string/label_id" />
已記錄

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1612
    • 檢視個人資料
回覆: [App Client 3] 掛號查詢
« 回覆文章 #3 於: 一月 13, 2015, 04:29:13 pm »
修改 activity_reg_result.xml
程式碼: [Select]
<TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/app_subtitle2"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView6"
        android:layout_below="@+id/textView6"
        android:text="@string/to_order"
        android:onClick="showOrderActivity" />

    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignLeft="@+id/button3"
        android:layout_below="@+id/textView1" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/webView1"
        android:layout_below="@+id/button3"
        android:layout_marginTop="20dp"
        android:text="@string/app_title"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView1"
        android:layout_marginLeft="18dp"
        android:layout_toRightOf="@+id/button3"
        android:text="@string/to_query"
        android:onClick="showQueryActivity"/>
已記錄

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1612
    • 檢視個人資料
回覆: [App Client 3] 掛號查詢
« 回覆文章 #4 於: 一月 13, 2015, 04:31:53 pm »
修改 activity_query.xml
程式碼: [Select]
<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/app_subtitle3"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="20dp"
        android:text="@string/label_id"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignRight="@+id/textView1"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="5dp"
        android:ems="5"
        android:inputType="text"
        android:text="@string/patient_id" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="5dp"
        android:text="@string/label_name" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_alignRight="@+id/editText1"
        android:layout_below="@+id/textView3"
        android:ems="10"
        android:inputType="text"
        android:text="@string/patient_name" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/textView1"
        android:onClick="showRegisterActivity"
        android:text="@string/to_register" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button3"
        android:layout_below="@+id/button3"
        android:onClick="showOrderActivity"
        android:text="@string/to_order" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editText2"
        android:layout_marginTop="10dp"
        android:text="@string/query_result_dummy"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView4"
        android:layout_alignLeft="@+id/button2"
        android:onClick="submitQueryActivity"
        android:text="@string/label_submit2" />
已記錄

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1612
    • 檢視個人資料
回覆: [App Client 3] 掛號查詢
« 回覆文章 #5 於: 一月 13, 2015, 04:35:46 pm »
(5) 參考 App Client 1 和App Client 2 修改
MainActivity.java,
RegisterActivity.java,
RegResultActivity.java
« 最後編輯時間: 一月 13, 2015, 04:37:42 pm 由 admin »
已記錄

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1612
    • 檢視個人資料
回覆: [App Client 3] 掛號查詢
« 回覆文章 #6 於: 一月 13, 2015, 04:57:13 pm »
(6) 修改 QueryActivity.java
程式碼: [Select]
public void submitQueryActivity(View view) {
        // Do something in response to button
        TextView tv = (TextView) findViewById(R.id.textView4);
    tv.setText("查詢中...");
new NetActionTask().execute("http://clinic.aiplab.net/app_query_reg.php");
    }

    public void showRegisterActivity(View view) {
        // Do something in response to button
    Intent intent = new Intent(this, RegisterActivity.class);
    startActivity(intent);
    }
    public void showOrderActivity(View view) {
        // Do something in response to button
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
    }
    private class NetActionTask extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... urls) {
       
            try {
                return postToNetwork(urls[0]);
            } catch (IOException e) {
               return getString(R.string.connection_error);
            }
        }

        /**
         * Uses the logging framework to display the output of the fetch
         * operation in the log fragment.
         */
        @Override
        protected void onPostExecute(String result) {
            //這裡要換頁     
            TextView tv = (TextView) findViewById(R.id.textView4);
        tv.setText(result);
        }
    }
    /** Initiates the fetch operation. */
    private String postToNetwork(String urlString) throws IOException {
        InputStream stream = null;
        String str ="NONO";

        try {
            stream = fromUrl(urlString);
            str = readIt(stream, 500);
       } finally {
           if (stream != null) {
               stream.close();
            }
        }
        return str;
    }

    /**
     * Given a string representation of a URL, sets up a connection and gets
     * an input stream.
     * @param urlString A string representation of a URL.
     * @return An InputStream retrieved from a successful HttpURLConnection.
     * @throws java.io.IOException
     */
    private InputStream fromUrl(String urlString) throws IOException {
        // BEGIN_INCLUDE(get_inputstream)
        URL url = new URL(urlString);
        HttpURLConnection http = (HttpURLConnection) url.openConnection();
        http.setRequestMethod("POST");
        http.setDoInput(true);
        http.setDoOutput(true);
        //Get parameters
        EditText editText1 = (EditText) findViewById(R.id.editText1);
        EditText editText2 = (EditText) findViewById(R.id.editText2);
       
        String  paramName = editText1.getText().toString().trim(); //e.g. "James Wang";
        String  paramID = editText2.getText().toString().trim(); //e.g."K111222333";
        // Start the query
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("PatientID", paramName));
        params.add(new BasicNameValuePair("PatientName", paramID));

        OutputStream os = http.getOutputStream();
        BufferedWriter writer = new BufferedWriter(
                new OutputStreamWriter(os, "UTF-8"));
        writer.write(getQuery(params));
        writer.flush();
        writer.close();
        os.close();
        http.connect();
       
        InputStream stream = http.getInputStream();
        return stream;
        // END_INCLUDE(get_inputstream)
    }
    private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
    {
        StringBuilder result = new StringBuilder();
        boolean first = true;

        for (NameValuePair pair : params)
        {
            if (first)
                first = false;
            else
                result.append("&");

            result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
            result.append("=");
            result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
        }

        return result.toString();
    }
    /** Reads an InputStream and converts it to a String.
     * @param stream InputStream containing HTML from targeted site.
     * @param len Length of string that this method returns.
     * @return String concatenated according to len parameter.
     * @throws java.io.IOException
     * @throws java.io.UnsupportedEncodingException
     */
    private String readIt(InputStream stream, int len) throws IOException, UnsupportedEncodingException {
        Reader reader = null;
        reader = new InputStreamReader(stream, "UTF-8");
        char[] buffer = new char[len];
        reader.read(buffer);
        return new String(buffer);
    }
已記錄
 

SimplePortal Classic 2.0.5