الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إستخدام ListView في تطبيق أندرويد و MYSQL

بدأه raycoding في 22 يوليو 2013 · 3 رد · 3,217 مشاهدة · في Android
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم إخواني

رمضان كريم

 

أنا عملت تطبيق أندرويد يستطيع قراءة البيانات من قاعدة بيانات 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());
   }
    
    }

 

شكرا جزيلا

#2

لقد حللت المشكلة و سأعرضها للفائدة

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.net.Uri;import android.os.Bundle;import android.os.StrictMode;import android.app.Activity;import android.app.ListActivity;import android.content.Intent;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {	TextView nameView;	String values[];	private ArrayAdapter arrayAdapter;	    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        ListView listV = new ListView(this);        setContentView(R.layout.activity_main);                       ListView ListV = (ListView) findViewById(R.id.List);        Button refre = (Button) findViewById(R.id.Ref);       StrictMode.enableDefaults(); //STRICT MODE ENABLED        getData();                        		arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,values );        ListV.setAdapter(arrayAdapter);                ListV.setOnItemClickListener(ListClicked);                refre.setOnClickListener(new OnClickListener(){			@Override			public void onClick(View v) {				finish();startActivity(getIntent());			}		});                           }            private OnItemClickListener ListClicked = new OnItemClickListener(){        @Override        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {        	        	Toast.makeText(getApplicationContext(), ((TextView) v).getText()+ " Hajjali Selected" ,        	          Toast.LENGTH_SHORT).show();        	        	        	        	        }    };                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);	   	   values = new String[jArray.length()];	   	  for(int i=0; i<jArray.length();i++){		   JSONObject json = jArray.getJSONObject(i);		   		   values=json.getString("FirstName");		   		  /* n = n + "Name : "+json.getString("FirstName")+" "+json.getString("LastName")+"\n";		   a=  a +  "Age : "+json.getInt("Age")+"\n";		   j=  j + "Job : "+json.getString("Job")+"\n";*/	  }   }catch (Exception e) {		   Log.e("log_tag", "Error Parsing Data "+e.toString());   }	     }    }
#3

أرجوك أخي أن تشرح الداله getdata بالتفصيل الجزء الخاص  بكل try&catch  انا أحتاجه جدا في مشروع تخرجي  أحتاج أن أفهم الخطوات ارجو المساعده 

#4

عذراً أخي ... لماذا إستعمال كل هذا ، مع العلم أنك بإمكانك : 


 


  1. إستعمال LISTACTIVITY والإستفادة من التسهيلات التي تمنحها لك .
  2. إستعمال Json مباشرة من صفحتك  : json_encode PHP 
  3. وضع جميع العمليات التي  من المحتمل أن تاخد وقت من المعالج في :  AsyncTask    

والله ولي التوفيق ...


تحياتي 


لا إله إلا الله محمد رسول الله  

Blog

GitHub

مواضيع مشابهة