|
|
|
Android สอบถามการใช้งาน Spinner โดยดึงข้อมูล จาก MySQL มาแสดง |
|
|
|
|
|
|
|
เข้าไปอ่านบทความ Android และ PHP/MySQL/JSON ครับ แล้วนำไป Apply ได้ไม่ยาก
|
|
|
|
|
Date :
2013-04-27 19:10:41 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กระทู้นี้เลยครับ
android ช่วยแนะนำหน่อยครับ spinner อะครับ ดึงข้อมูลจาก mysql เช่นจังหวัดอะครับ
|
|
|
|
|
Date :
2013-04-27 19:48:04 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เจ้าของกระทู้นั้น ยังทำไม่ได้เลยครับ
|
ประวัติการแก้ไข 2013-04-28 02:13:45
|
|
|
|
Date :
2013-04-28 02:13:05 |
By :
maximumoflove |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนพี่วิน ช่วยดูโค้ดให้หน่อยนะครับ ลอง Apply แล้วมั่วๆยังไงไม่รู้ครับ 55
นี่PHP ครับ
Code (PHP)
<?
include 'Connect.php';
$strspinnerSelected = $_POST["spinnerSelected"];
$strSQL = "SELECT * FROM fee
WHERE fee_name= ' ".$strspinnerSelected." '
";
$objQuery = mysql_query($strSQL);
$intNumField = mysql_num_fields($objQuery);
$resultArray = array();
while($obResult = mysql_fetch_array($objQuery))
{
$arrCol = array();
for($i=0;$i<$intNumField;$i++)
{
$arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
}
array_push($resultArray,$arrCol);
}
mysql_close($objConnect);
echo json_encode($resultArray);
?>
ส่วนนี่ JAVA (Android) ครับ
Code (Android-Java)
package com.example.testconnect;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends Activity {
ArrayList<HashMap<String, String>> MyArrList;
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Permission StrictMode
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
DoSpinner();
}
public void DoSpinner()
{
final TextView name=(TextView) findViewById(R.id.TestName);
final TextView Price=(TextView) findViewById(R.id.TestPriceSpinner);
Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
String url = "http://filing.hostoi.com/android1/getJSON.php";
// Paste Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("spinnerSelected", spinner1.toString()));
try {
JSONArray data = new JSONArray(getJSONUrl(url,params));
final ArrayList<HashMap<String, String>> MyArrList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;
for(int i = 0; i < data.length(); i++){
JSONObject c = data.getJSONObject(i);
map = new HashMap<String, String>();
map.put("fee_name", c.getString("fee_name"));
map.put("fee_price", c.getString("fee_price"));
MyArrList.add(map);
}
ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_spinner_item);
dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(dataAdapter1);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int position,
long id) {
// TODO Auto-generated method stub
String strName = MyArrList.get(position).get("fee_name")
.toString();
String strPrice = MyArrList.get(position).get("fee_price")
.toString();
name.setText(strName);
Price.setText(strPrice);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
name.setText("");
Price.setText("");
}
});
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getJSONUrl(String url,List<NameValuePair> params) {
StringBuilder str = new StringBuilder();
HttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
try {
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse response = client.execute(httpPost);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) { // Download OK
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(content));
String line;
while ((line = reader.readLine()) != null) {
str.append(line);
}
} else {
Log.e("Log", "Failed to download file..");
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return str.toString();
}
}
จะแสดง list ในspinner เป็น fee_name แล้วเมื่อClickที่ fee_name แล้วจะ set ให้TexView แสดง fee_price ของ fee_nameที่เลือก ในDatabase Database ที่ใช้งานจริง คล้ายกับ รูปที่ให้ไว้ข้างบนครับ เพียงแต่ เปลี่ยนจาก product เป็น fee
|
|
|
|
|
Date :
2013-04-28 02:59:20 |
By :
maximumoflove |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ว่างมาเขียนให้แล้วครับ
Android Spinner / DropDownList from PHP and MySQL (Web Server)
|
|
|
|
|
Date :
2013-06-21 16:17:28 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|