Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > Mobile > Mobile Forum > Android รบกวนขอคำแนะนำในการ ดึงรูปจาก MySQL มาแสดงในแอพค่ะ



 

Android รบกวนขอคำแนะนำในการ ดึงรูปจาก MySQL มาแสดงในแอพค่ะ

 



Topic : 121782



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์




ได้ลองทำตามบทความนี้แล้วค่ะ

https://www.thaicreate.com/mobile/android-listview-custom-image-resource-from-url.html

แต่อยากทำแบบ get by id อ่ะค่ะ ต้องทำยังไงหรอคะ
รบกวนด้วยค่ะ ขอบคุณค่ะ



Tag : Mobile, MySQL, Android







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-03-07 02:57:21 By : UnseenPP View : 974 Reply : 5
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ต้องไปดูเพิ่มเติมที่บทความ Android กับ PHP/MySQL ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-07 17:34:54 By : mr.win
 


 

No. 2



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.win เมื่อวันที่ 2016-03-07 17:34:54
รายละเอียดของการตอบ ::
ขอบคุณสำหรับคำแนะนำค่ะ

ได้เคยลองดึงข้อมูลที่เป็น Text โดย Get By ID มาแล้วค่ะ สามารถดึงมาแสดงได้
และได้ลองปรับมาแก้ไขกับรูปภาพแล้ว แต่ก็ยังดึงมาไม่ได้ค่ะ

Code (Android-Java)
private void showImage() {
        final TextView tid = (TextView) findViewById(R.id.txtid);
        final ImageView imageView = (ImageView) findViewById(R.id.imgHouse);
        String url1 = "http://www.zp9512.tld.122.155.18.18.no-domain.name/RegTest/getImageById.php";

        Intent intent = getIntent();
        final String id = intent.getStringExtra("id");

        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("sid", id));

        String resultServer = getHttpGet(url1, params);

        String strid = "";
        String strImage = "";

        JSONObject c1;
        try {
            c1 = new JSONObject(resultServer);
            strid = c1.getString("id");

            if (!strid.equals("")) {
                tid.setText(strid);
                imageView.setImageBitmap(loadBitmap(url1, params));

            } else {
                tid.setText("-");
                imageView.setImageResource(android.R.drawable.ic_menu_report_image);
                Toast.makeText(DetailActivity.this, "Load Image Failed", Toast.LENGTH_LONG).show();

            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    private String getHttpGet(String url1, List<NameValuePair> params) {
        StringBuilder str = new StringBuilder();
        HttpClient client = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(url1);

        try {

            HttpResponse response = client.execute(httpGet);
            StatusLine statusLine = response.getStatusLine();
            int statusCode = statusLine.getStatusCode();
            if (statusCode == 200) {
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(content));
                String line;
                while ((line = reader.readLine()) != null) {
                    str.append(line);
                }
            } else {
                Log.e("Log", "Failed to download file..");
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return str.toString();

    }

    private static final String TAG = "ERROR";
    private static final int IO_BUFFER_SIZE = 4 * 1024;
    public static Bitmap loadBitmap(String url1, List<NameValuePair> params) {
        Bitmap bitmap = null;
        InputStream in = null;
        BufferedOutputStream out = null;

        try {
            in = new BufferedInputStream(new URL(url1).openStream(), IO_BUFFER_SIZE);

            final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
            out = new BufferedOutputStream(dataStream, IO_BUFFER_SIZE);
            copy(in, out);
            out.flush();

            final byte[] data = dataStream.toByteArray();
            BitmapFactory.Options options = new BitmapFactory.Options();
            //option.inSampleSize =1;
            bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, options);
        } catch (IOException e) {
            Log.e(TAG, "Could not load Bitmap from: " + url1);
        } finally {
            closeStream(in);
            closeStream(out);
        }
        return bitmap;
    }

    private static void closeStream(Closeable stream) {
        if (stream != null) {
            try {
                stream.close();
            } catch (IOException e) {
                android.util.Log.e(TAG, "Could not close stream" , e);
            }
        }
    }

    private static void copy(InputStream in, OutputStream out) throws IOException {
        byte[] b = new byte[IO_BUFFER_SIZE];
        int read;
        while ((read = in.read(b)) != -1) {
            out.write(b,0,read);
        }
    }


แล้วดูจาก Android Monitor แล้วมีปัญหา ดังนี้ค่ะ พอดีแล้วมันเป็น บรรทัดนี้ค่ะ c1 = new JSONObject(resultServer);

03-07 12:08:03.914 6235-6235/? W/System.err: org.json.JSONException: End of input at character 0 of
03-07 12:08:03.914 6235-6235/? W/System.err: at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
03-07 12:08:03.914 6235-6235/? W/System.err: at org.json.JSONTokener.nextValue(JSONTokener.java:97)
03-07 12:08:03.914 6235-6235/? W/System.err: at org.json.JSONObject.<init>(JSONObject.java:155)
03-07 12:08:03.914 6235-6235/? W/System.err: at org.json.JSONObject.<init>(JSONObject.java:172)
03-07 12:08:03.914 6235-6235/? W/System.err: at training.ppproject.app.getmember.DetailActivity.showImage(DetailActivity.java:111)
03-07 12:08:03.914 6235-6235/? W/System.err: at training.ppproject.app.getmember.DetailActivity.onCreate(DetailActivity.java:66)
03-07 12:08:03.914 6235-6235/? W/System.err: at android.app.Activity.performCreate(Activity.java:5231)
03-07 12:08:03.914 6235-6235/? W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-07 12:08:03.918 6235-6235/? W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
03-07 12:08:03.918 6235-6235/? W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
03-07 12:08:03.918 6235-6235/? W/System.err: at android.app.ActivityThread.access$800(ActivityThread.java:135)
03-07 12:08:03.918 6235-6235/? W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
03-07 12:08:03.918 6235-6235/? W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
03-07 12:08:03.918 6235-6235/? W/System.err: at android.os.Looper.loop(Looper.java:136)
03-07 12:08:03.918 6235-6235/? W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5001)
03-07 12:08:03.918 6235-6235/? W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
03-07 12:08:03.918 6235-6235/? W/System.err: at java.lang.reflect.Method.invoke(Method.java:515)
03-07 12:08:03.918 6235-6235/? W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
03-07 12:08:03.918 6235-6235/? W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
03-07 12:08:03.918 6235-6235/? W/System.err: at dalvik.system.NativeStart.main(Native Method)

รบกวนช่วยตรวจสอบทีค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-08 00:23:23 By : UnseenPP
 

 

No. 3



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ทำได้แล้วค่ะ

Code (Android-Java)
public class DetailActivity extends AppCompatActivity {

    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);

        //Permission StrictMode
        if (Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new
                    StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }

        showImage();

        Intent intent = getIntent();
        final String sid = intent.getStringExtra("id");

        final Button btnUpdate = (Button) findViewById(R.id.btnUpdate);
        btnUpdate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(DetailActivity.this, UpdateActivity.class);
                intent.putExtra("id", sid);
                startActivity(intent);
            }
        });

        //btnBack
        final Button btnBack = (Button) findViewById(R.id.btnBack);
        //Perform action on click
        btnBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent newActivity = new Intent(DetailActivity.this, MainActivity.class);
                startActivity(newActivity);
            }
        });
    }

    private void showImage() {
        final TextView tid = (TextView) findViewById(R.id.txtid);
        final TextView tImage = (TextView) findViewById(R.id.txtUrl);
        tImage.setVisibility(View.GONE);
        final ImageView imageView = (ImageView) findViewById(R.id.imgHouse);
        String url1 = "http://............................/getImageById.php";

        Intent intent = getIntent();
        final String id = intent.getStringExtra("id");

        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("sid", id));

        String resultServer = getHttpPost(url1, params);

        String strid = "";
        String strImage = "";

        JSONObject c1;
        try {
            c1 = new JSONObject(resultServer);
            strid = c1.getString("id");
            strImage = c1.getString("Image");

            if (!strid.equals("")) {
                tid.setText(strid);
                tImage.setText(strImage);

            } else {
                tid.setText("-");
                tImage.setText("-");

            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        String url2 = tImage.getText().toString();
        try {
            imageView.setImageBitmap(loadBitmap(url2));
        } catch (Exception e) {
            imageView.setImageResource(android.R.drawable.ic_menu_report_image);
            Toast.makeText(DetailActivity.this, "Load Image Failed.", Toast.LENGTH_LONG).show();
        }


    }

    private String getHttpPost(String url1, List<NameValuePair> params) {
        StringBuilder str = new StringBuilder();
        HttpClient client = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url1);

        try {
            httpPost.setEntity(new UrlEncodedFormEntity(params));
            HttpResponse response = client.execute(httpPost);
            StatusLine statusLine = response.getStatusLine();
            int statusCode = statusLine.getStatusCode();
            if (statusCode == 200) {
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(content));
                String line;
                while ((line = reader.readLine()) != null) {
                    str.append(line);
                }
            } else {
                Log.e("Log", "Failed to download file..");
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return str.toString();

    }

    private static final String TAG = "ERROR";
    private static final int IO_BUFFER_SIZE = 4 * 1024;
    public static Bitmap loadBitmap(String url2) {
        Bitmap bitmap = null;
        InputStream in = null;
        BufferedOutputStream out = null;

        try {
            in = new BufferedInputStream(new URL(url2).openStream(), IO_BUFFER_SIZE);

            final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
            out = new BufferedOutputStream(dataStream, IO_BUFFER_SIZE);
            copy(in, out);
            out.flush();

            final byte[] data = dataStream.toByteArray();
            BitmapFactory.Options options = new BitmapFactory.Options();
            //option.inSampleSize =1;
            bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, options);
        } catch (IOException e) {
            Log.e(TAG, "Could not load Bitmap from: " + url2);
        } finally {
            closeStream(in);
            closeStream(out);
        }
        return bitmap;
    }

    private static void closeStream(Closeable stream) {
        if (stream != null) {
            try {
                stream.close();
            } catch (IOException e) {
                android.util.Log.e(TAG, "Could not close stream" , e);
            }
        }
    }

    private static void copy(InputStream in, OutputStream out) throws IOException {
        byte[] b = new byte[IO_BUFFER_SIZE];
        int read;
        while ((read = in.read(b)) != -1) {
            out.write(b,0,read);
        }
    }

}



ส่วนไฟล์ php ก็ใช้หลักการเดียวกับ GetbyID ค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-09 00:50:01 By : UnseenPP
 


 

No. 4



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-09 09:09:43 By : mr.win
 


 

No. 5



โพสกระทู้ ( 26 )
บทความ ( 0 )



สถานะออฟไลน์


ขอด฿ตัซอย่างไฟล์งานได้ไหมคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-17 15:53:24 By : Spike
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Android รบกวนขอคำแนะนำในการ ดึงรูปจาก MySQL มาแสดงในแอพค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่