2014-01-28 6 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> 

사람이 med_name을 나는 테이블 medicine_dictionary에서 이미지를 검색하는 코드를 추가하는 방법을 내 코드를 사용하여 말해과 열을 검색 할 수 med_info 이미지 포함. 부디. 나는 저에게 대답 할 사람들에게 매우 위대하고 감사 할 것입니다.

답변

2

이봐, 당신은 다음과 같이 설정해야합니다, 당신의 onPostExe 방법, 여기서 결과는 비트 맵 이미지, 당신은 다음 비트 맵으로

medical_dictionary.getString(TAG_IMAGE); 

을 변환 할 필요가 결과에 전달할 것입니다

medimg.setImageBitmap(result); 
+0

결과에 오류가 있습니다. 그 결과는 무엇을 의미합니까? – user3226149

관련 문제