Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tidak dapat mengambil data dari database mysql ke ListView di Aplikasi Android saya

Ada beberapa hal yang terjadi di sini, saya akan mencoba untuk mengatasi apa yang saya bisa.

Entri log ini mencurigakan:

03-22 22:30:42.860: E/ERROR(6055): Illegal character in query at index 53: http://necrecords.16mb.com/getproducts.php?password=A AA E EEE

Juga, dari log ini:

03-22 22:54:08.000: E/ERROR(7654): Error converting result java.lang.NullPointerException: lock == null

Anda dapat melihat bahwa Anda tidak mendapatkan tanggapan yang valid dari halaman PHP ini.

Blok kode ini memberikan pengecualian:

//convert response to string
   try{
        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"),8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
              sb.append(line + "\n");
        }
        is.close();         
        result=sb.toString();
   }catch(Exception e){
        Log.e("ERROR", "Error converting result "+e.toString());

Saya baru saja mencoba URL di browser, dan berhasil, karena browser secara otomatis mengkodekan url dengan benar, seperti ini:

http://necrecords.16mb.com/getproducts.php?password=A%20AA%20E%20EEE

Saya rasa Anda hanya perlu mengkodekan URL dengan benar karena string berisi spasi.

String query = URLEncoder.encode(mname, "utf-8");

httppost= new HttpPost("http://necrecords.16mb.com/getsongslist.php?password="+query);
response=httpclient.execute(httppost);     

Adapun masalah daftar Anda menjadi dua kali lipat, Anda bisa menghapus daftar setiap kali AsyncTask dijalankan:

protected Void doInBackground(Void...params){ 

   InputStream is=null;
   String result="";
   try{

   records.clear(); //clear the list before re-populating

   httpclient=new DefaultHttpClient();
      httppost= new HttpPost("http://necrecords.16mb.com/getproducts.php");
   response=httpclient.execute(httppost);         
         HttpEntity entity = response.getEntity();
         is = entity.getContent();

   }catch(Exception e){

Satu hal lagi, Anda mungkin ingin membuat Adaptor terpisah untuk setiap Acitvity. Seperti sekarang, Anda menggunakan Adaptor yang sama untuk kedua Aktivitas.

Di getView() Adaptor Anda , Anda mereferensikan R.id.pro_name dan R.id.pro_uprice , tetapi Anda menggunakan Adaptor ini di kedua Aktivitas Anda. Apakah kedua Aktivitas Anda berisi elemen-elemen ini dalam tata letaknya xml?

    public View getView(int position, View convertView, ViewGroup parent) {

     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     View itemView = inflater.inflate(groupid, parent, false);
     String[] row_items=records.get(position).split("__");
     TextView textName= (TextView) itemView.findViewById(R.id.pro_name);
     textName.setText(row_items[0]);
     TextView textPrice= (TextView) itemView.findViewById(R.id.pro_uprice);
     textPrice.setText(row_items[1]+"$");
     return itemView;
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL jika kueri pemilihan mengembalikan 0 baris lalu kueri pemilihan lainnya?

  2. Masalah Batas Waktu Koneksi MySQL - Aplikasi Grails di Tomcat menggunakan Hibernate dan ORM

  3. Bagaimana saya bisa menghilangkan kolom dari pernyataan SELECT saat menggunakannya ke dalam klausa HAVING?

  4. Memulihkan Database MySQL saat menginstal ulang Wamp

  5. Bagaimana saya bisa menyimpan output kueri ke dalam tabel sementara dan menggunakan tabel dalam kueri baru?