السلام عليكم إخواني
رمضان كريم
أنا عملت تطبيق أندرويد يستطيع قراءة البيانات من قاعدة بيانات MYSQL و من ثم عرضها في التطبيق
هذا التطبيق يتحكى مع ملف PHP علي السيرفر المحلي
و لكن أنا أريد أن تظهر هذه البيانات ب ListView , أعني بذلك إظها الإسم با LIST و عند الضغط على الإسم يأخذني إلى المعلومات الإضافية
أي نا أريد من حضرتكم شرح كيف يمكن أن أضع تلك البيانات ب ListView
قاعدة اليانات:
CREATE TABLE IF NOT EXISTS `customer` ( `FirstName` varchar(20) DEFAULT NULL, `LastName` varchar(20) DEFAULT NULL, `Age` varchar(20) DEFAULT NULL, `Mobile` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
;
كود صفحة php
<?php
$con=mysql_connect("localhost","root","");
if(!$con)
die('could not connect: ' .mysql_error());
mysql_select_db("mydatabase",$con);
$result = mysql_query("SELECT * FROM CUSTOMER");
while($row=mysql_fetch_assoc($result)){
$output[]=$row;
}
print(json_encode($output));
mysql_close($con);?>
كود الجافا الأندرويد
package com.ray.testexternaldatabase;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;
import android.os.Bundle;
import android.os.StrictMode;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView nameView;
TextView ageView;
TextView jobView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.enableDefaults(); //STRICT MODE ENABLED
nameView = (TextView) findViewById(R.id.nametxt);
ageView = (TextView) findViewById(R.id.agetxt);
jobView = (TextView) findViewById(R.id.jobtxt);
getData();
}
public void getData(){
String result = "";
InputStream isr = null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://127.0.0.1/LawyersIS/TestWebLogic/getAllCustomers.php"); //YOUR PHP SCRIPT ADDRESS
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
isr = entity.getContent();
}
catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
nameView.setText("Couldnt connect to database");
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(isr,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
isr.close();
result=sb.toString();
}
catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//parse json data
try {
String n = "";
String a="";
String j="";
JSONArray jArray = new JSONArray(result);
for(int i=0; i<jArray.length();i++){
JSONObject json = jArray.getJSONObject(i);
n = n + "Name : "+json.getString("FirstName")+" "+json.getString("LastName")+"\n";
a= a + "Age : "+json.getInt("Age")+"\n";
j= j + "Job : "+json.getString("Job")+"\n";
}
nameView.setText(n);
ageView.setText(a);
jobView.setText(j);
} catch (Exception e) {
Log.e("log_tag", "Error Parsing Data "+e.toString());
}
}
شكرا جزيلا