2014-01-28 190 views
0

我想用包含術語的listview開發醫學詞典,當一個項目被點擊時,細節出現在另一個意圖上。所有這些都從我的本地數據庫中提取,我不使用SQLITE。我希望醫學的每個細節都至少有一個圖像。但我只能夠檢索文本而不是圖像。android從MySql數據庫中檢索blob圖像

任何人都知道如何?

這是我顯示該藥的詳細信息的代碼。

MedInfoActivity.java

import library.JSONParser2; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 

import org.apache.http.NameValuePair; 
import org.apache.http.message.BasicNameValuePair; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 


import android.app.Activity; 
import android.app.ListActivity; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.TextView; 


public class MedInfoActivity extends Activity { 

    TextView txtMedInfo; 
    TextView med_name; 
    String mid; 
    ImageView medimg; 

    // Progress Dialog 
    private ProgressDialog pDialog; 

    // JSON parser class 
    JSONParser2 jsonParser = new JSONParser2(); 

    // url to get all products list 
    private static String url_med_info = "http://10.0.2.2/android_connect/med_info.php"; 

    // JSON Node names 
    private static final String TAG_SUCCESS = "success"; 
    private static final String TAG_MEDICINE = "medicine"; 
    private static final String TAG_MED_ID = "mid"; 
    private static final String TAG_MED_NAME = "med_name"; 
    private static final String TAG_MED_INFO = "med_info"; 
    private static final String TAG_IMAGE = "image"; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.med_info); 

     // save button 
     //btnSave = (Button) findViewById(R.id.btnSave); 
     //btnDelete = (Button) findViewById(R.id.btnDelete); 

     // getting product details from intent 
     Intent i = getIntent(); 

     // getting product id (pid) from intent 
     mid = i.getStringExtra(TAG_MED_ID); 

     // Getting complete product details in background thread 
     new GetMedicineDetails().execute(); 

    } 

    /** 
    * Background Async Task to Get complete product details 
    * */ 
    class GetMedicineDetails extends AsyncTask<String, String, String> { 

     /** 
     * Before starting background thread Show Progress Dialog 
     * */ 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(MedInfoActivity.this); 
      pDialog.setMessage("Loading medicines details. Please wait..."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(true); 
      pDialog.show(); 
     } 

     /** 
     * Getting product details in background thread 
     * */ 
     protected String doInBackground(String... params) { 

      // updating UI from Background Thread 
      runOnUiThread(new Runnable() { 
       public void run() { 
        // Check for success tag 
        int success; 
        try { 
         // Building Parameters 
         List<NameValuePair> params = new ArrayList<NameValuePair>(); 
         params.add(new BasicNameValuePair("mid", mid)); 

         // getting product details by making HTTP request 
         // Note that product details url will use GET request 
         JSONObject json = jsonParser.makeHttpRequest(
           url_med_info, "GET", params); 

         // check your log for json response 
          Log.d("Single Medicine Details", json.toString()); 

          // json success tag 
          success = json.getInt(TAG_SUCCESS); 
          if (success == 1) { 
           // successfully received product details 
           JSONArray medObj = json 
             .getJSONArray(TAG_MEDICINE); // JSON Array 

           // get first product object from JSON Array 
           JSONObject medical_dictionary = medObj.getJSONObject(0); 

           // product with this pid found 
           // Edit Text 
           med_name = (TextView) findViewById(R.id.med_name); 
           txtMedInfo = (TextView) findViewById(R.id.inputMedInfo); 
           medimg = (ImageView) findViewById(R.id.medimg); 



           // display product data in EditText 
           txtMedInfo.setText(medical_dictionary.getString(TAG_MED_INFO)); 
           med_name.setText(medical_dictionary.getString(TAG_MED_NAME)); 
           medimg.setTag(medical_dictionary.getString(TAG_IMAGE)); 


          }else{ 
           // product with pid not found 
          } 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
       }); 

       return null; 
      } 


      /** 
      * After completing background task Dismiss the progress dialog 
      * **/ 
      protected void onPostExecute(String file_url) { 
       // dismiss the dialog once got all details 
       pDialog.dismiss(); 
      } 
     } 
} 

med_info.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/white_bg" 
    android:orientation="vertical" > 

    <!-- Name Label --> 

    <TextView 
     android:id="@id/med_name" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:paddingLeft="10dip" 
     android:paddingRight="10dip" 
     android:paddingTop="10dip" 
     android:textColor="#000000" 
     android:textSize="30dp" /> 

    <!-- Input description --> 

    <ImageView 
     android:id="@+id/medimg" 
     android:layout_width="48dp" 
     android:layout_height="40dp" /> 

    <TextView 
     android:id="@+id/inputMedInfo" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="5dip" 
     android:layout_marginBottom="15dip" 
     android:gravity="top" 
     android:lines="28" 
     android:textColor="#000000" 
     android:textSize="19dp" /> 

</LinearLayout> 

誰能告訴我用我的代碼,我怎麼可以添加代碼從表medicine_dictionary圖像檢索和檢索列med_name,med_info包括圖像。請。對於那些會回答我的人,我會非常感謝和感謝。

回答

2

嘿,你需要這樣設置,在您的onPostExe方法,這裏的結果是一個位圖圖像,您需要將您的

medical_dictionary.getString(TAG_IMAGE); 

轉換成位圖,然後將它傳遞的結果,

medimg.setImageBitmap(result); 
+0

結果中有錯誤。結果是什麼意思? – user3226149