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 - เมื่อกดให้เรียก spinner ที่ดึงข้อมูลจาก MySQL Database ให้แสดงแอพจะค้าง แก้ไขอย่างไรดีค่ะ



 

Android - เมื่อกดให้เรียก spinner ที่ดึงข้อมูลจาก MySQL Database ให้แสดงแอพจะค้าง แก้ไขอย่างไรดีค่ะ

 



Topic : 109208



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



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




Androidminifest.xml มีการอนุญาติอินเตอร์เน็ตแล้วค่ะ

<uses-permission android:name="android.permission.INTERNET" />


โค้ดที่เขียนค่ะ
Code (Android-Java)
protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.adnews);
		setupActionBar();
		
		if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
            
        }
	
public void clickr11(View v){
    showspinner();

}

private void showspinner(){
		// spinner1
        
	//servername is ip address my computer + name folder 
	addinsql ss= new addinsql();	
 	String url = ss.getserverName()+"getJSON_spinnlight.php";

		try {
			
			JSONArray data = new JSONArray(getJSONUrl(url));
			Spinner spin1 =(Spinner)findViewById(R.id.spinner1);			
			
			final ArrayList<HashMap<String, String>> MyArrList = new ArrayList<HashMap<String, String>>();
			HashMap<String, String> map;
			
			for(int i = 0; i < data.length(); i++){
                JSONObject c = data.getJSONObject(i);
                
    			map = new HashMap<String, String>();
    			map.put("light_detail", c.getString("light_detail"));
    			MyArrList.add(map);
    			
			}
			
			HashMap<String, String> m = MyArrList.get(0);//it will get the first HashMap Stored in array list 
			spinlight =new String[m.size()];
			int i = 0;
			for (HashMap<String, String> hash : MyArrList) {
			    for (String current : hash.values()) {
			        spinlight[i] = current;
			        i++;
			    }
			}

			
			
			ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>
			(this,android.R.layout.simple_spinner_item,spinlight);
			
			spin1.setAdapter(dataAdapter1);
			spin1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1, int position,
					long arg3) {
				final EditText e4 = (EditText)findViewById(R.id.e_51);
				
				if(position==5){
					e4.setVisibility(View.VISIBLE);
					e4.setText("");
				}
				else {
					e4.setVisibility(View.INVISIBLE);
					e4.setText("-");
				}
				// TODO Auto-generated method stub
				
			}
			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub
				Log.e(TAG,"มาแล้ว2");
				Toast.makeText(getApplicationContext(),"not", Toast.LENGTH_SHORT).show();
				
			}});
			
                        } catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

	     
	}

	public String getJSONUrl(String url) {
		StringBuilder str = new StringBuilder();
		HttpClient client = new DefaultHttpClient();
		HttpGet httpGet = new HttpGet(url);
		try {
			HttpResponse response = client.execute(httpGet);
			StatusLine statusLine = response.getStatusLine();
			int statusCode = statusLine.getStatusCode();
			if (statusCode == 200) { // Download OK
				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 result..");
			}
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return str.toString();
	}





โค้ดไฟล์php

Code (PHP)
<?php
	$objConnect = mysql_connect("localhost","root","****");
	$objDB = mysql_select_db("visit");
	$strSQL = "SELECT light_detail FROM light";
	$objQuery = mysql_query($strSQL);
	$intNumField = mysql_num_fields($objQuery);
	$resultArray = array();
	while($obResult = mysql_fetch_array($objQuery))
	{
		$arrCol = array();
		for($i=0;$i<$intNumField;$i++)
		{
			$arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
		}
		array_push($resultArray,$arrCol);
	}
	
	mysql_close($objConnect);
	
	echo json_encode($resultArray);
?>


Logcat
06-16 11:01:54.863: D/TextLayoutCache(7649): Enable myanmar Zawgyi converter
06-16 11:01:54.893: W/System.err(7649): [DEBUG] GbaRequest - GbaRequest: Constructor Called 222 userAgent Apache-HttpClient/UNAVAILABLE (java 1.4)
06-16 11:01:54.893: W/System.err(7649): [DEBUG] NafRequest - NafRequest: NafRequest constructor===useragent Apache-HttpClient/UNAVAILABLE (java 1.4)
06-16 11:01:55.173: I/System.out(7649): Thread-1(ApacheHTTPLog):Reading from variable values from setDefaultValuesToVariables
06-16 11:01:55.193: I/System.out(7649): Thread-1(ApacheHTTPLog):isShipBuild true
06-16 11:01:55.193: I/System.out(7649): Thread-1(ApacheHTTPLog):SmartBonding Enabling is true, SHIP_BUILD is true, log to file is false, DBG is false
06-16 11:02:10.113: I/System.out(7649): main calls detatch()
06-16 11:02:10.113: W/System.err(7649): java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)
06-16 11:02:10.143: W/System.err(7649): at libcore.io.IoBridge.maybeThrowAfterRecvfrom(IoBridge.java:545)
06-16 11:02:10.143: W/System.err(7649): at libcore.io.IoBridge.recvfrom(IoBridge.java:509)
06-16 11:02:10.143: W/System.err(7649): at java.net.PlainSocketImpl.read(PlainSocketImpl.java:489)
06-16 11:02:10.153: W/System.err(7649): at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
06-16 11:02:10.153: W/System.err(7649): at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:241)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:191)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:82)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:180)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.client.DefaultRequestDirector.executeSB(DefaultRequestDirector.java:875)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:675)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:567)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:491)
06-16 11:02:10.153: W/System.err(7649): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:469)
06-16 11:02:10.163: W/System.err(7649): at com.example.q1.AdnewsActivity.getJSONUrl(AdnewsActivity.java:213)
06-16 11:02:10.163: W/System.err(7649): at com.example.q1.AdnewsActivity.showspinner(AdnewsActivity.java:140)
06-16 11:02:10.163: W/System.err(7649): at com.example.q1.AdnewsActivity.clickr11(AdnewsActivity.java:114)
06-16 11:02:10.163: W/System.err(7649): at java.lang.reflect.Method.invokeNative(Native Method)
06-16 11:02:10.163: W/System.err(7649): at java.lang.reflect.Method.invoke(Method.java:515)
06-16 11:02:10.163: W/System.err(7649): at android.view.View$1.onClick(View.java:3964)
06-16 11:02:10.163: W/System.err(7649): at android.view.View.performClick(View.java:4640)
06-16 11:02:10.163: W/System.err(7649): at android.widget.CompoundButton.performClick(CompoundButton.java:104)
06-16 11:02:10.163: W/System.err(7649): at android.view.View$PerformClick.run(View.java:19421)
06-16 11:02:10.163: W/System.err(7649): at android.os.Handler.handleCallback(Handler.java:733)
06-16 11:02:10.163: W/System.err(7649): at android.os.Handler.dispatchMessage(Handler.java:95)
06-16 11:02:10.163: W/System.err(7649): at android.os.Looper.loop(Looper.java:136)
06-16 11:02:10.163: W/System.err(7649): at android.app.ActivityThread.main(ActivityThread.java:5579)
06-16 11:02:10.163: W/System.err(7649): at java.lang.reflect.Method.invokeNative(Native Method)
06-16 11:02:10.163: W/System.err(7649): at java.lang.reflect.Method.invoke(Method.java:515)
06-16 11:02:10.173: W/System.err(7649): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
06-16 11:02:10.173: W/System.err(7649): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
06-16 11:02:10.173: W/System.err(7649): at dalvik.system.NativeStart.main(Native Method)
06-16 11:02:10.173: W/System.err(7649): Caused by: libcore.io.ErrnoException: recvfrom failed: ECONNRESET (Connection reset by peer)
06-16 11:02:10.183: W/System.err(7649): at libcore.io.Posix.recvfromBytes(Native Method)
06-16 11:02:10.183: W/System.err(7649): at libcore.io.Posix.recvfrom(Posix.java:141)
06-16 11:02:10.183: W/System.err(7649): at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:164)
06-16 11:02:10.183: W/System.err(7649): at libcore.io.IoBridge.recvfrom(IoBridge.java:506)
06-16 11:02:10.183: W/System.err(7649): ... 35 more
06-16 11:02:10.183: W/System.err(7649): org.json.JSONException: End of input at character 0 of
06-16 11:02:10.183: W/System.err(7649): at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
06-16 11:02:10.193: W/System.err(7649): at org.json.JSONTokener.nextValue(JSONTokener.java:97)
06-16 11:02:10.193: W/System.err(7649): at org.json.JSONArray.<init>(JSONArray.java:92)
06-16 11:02:10.193: W/System.err(7649): at org.json.JSONArray.<init>(JSONArray.java:108)
06-16 11:02:10.193: W/System.err(7649): at com.example.q1.AdnewsActivity.showspinner(AdnewsActivity.java:140)
06-16 11:02:10.193: W/System.err(7649): at com.example.q1.AdnewsActivity.clickr11(AdnewsActivity.java:114)
06-16 11:02:10.193: W/System.err(7649): at java.lang.reflect.Method.invokeNative(Native Method)
06-16 11:02:10.193: W/System.err(7649): at java.lang.reflect.Method.invoke(Method.java:515)
06-16 11:02:10.193: W/System.err(7649): at android.view.View$1.onClick(View.java:3964)
06-16 11:02:10.193: W/System.err(7649): at android.view.View.performClick(View.java:4640)
06-16 11:02:10.193: W/System.err(7649): at android.widget.CompoundButton.performClick(CompoundButton.java:104)
06-16 11:02:10.193: W/System.err(7649): at android.view.View$PerformClick.run(View.java:19421)
06-16 11:02:10.193: W/System.err(7649): at android.os.Handler.handleCallback(Handler.java:733)
06-16 11:02:10.193: W/System.err(7649): at android.os.Handler.dispatchMessage(Handler.java:95)
06-16 11:02:10.193: W/System.err(7649): at android.os.Looper.loop(Looper.java:136)
06-16 11:02:10.193: W/System.err(7649): at android.app.ActivityThread.main(ActivityThread.java:5579)
06-16 11:02:10.193: W/System.err(7649): at java.lang.reflect.Method.invokeNative(Native Method)
06-16 11:02:10.193: W/System.err(7649): at java.lang.reflect.Method.invoke(Method.java:515)
06-16 11:02:10.193: W/System.err(7649): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
06-16 11:02:10.193: W/System.err(7649): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
06-16 11:02:10.193: W/System.err(7649): at dalvik.system.NativeStart.main(Native Method)
06-16 11:02:10.263: I/Choreographer(7649): Skipped 925 frames! The application may be doing too much work on its main thread.
06-16 11:02:10.283: D/skia(7649): GFXPNG PNG bitmap created width:12 height:12 bitmap id is 283
06-16 11:02:10.283: D/AbsListView(7649): Get MotionRecognitionManager
06-16 11:02:10.323: D/AbsListView(7649): unregisterIRListener() is called
06-16 11:02:10.353: D/AbsListView(7649): unregisterIRListener() is called
06-16 11:02:10.353: D/AbsListView(7649): unregisterIRListener() is called
06-16 11:02:10.363: D/AbsListView(7649): unregisterIRListener() is called




Tag : Mobile, MySQL, Android, Mobile









ประวัติการแก้ไข
2014-06-16 11:16:18
2014-06-16 11:35:47
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-06-16 11:09:37 By : boom159 View : 1980 Reply : 6
 

 

No. 1



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



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

Code (Android-Java)
org.json.JSONException: End of input at character 0 of 


JSONArray ที่เรียกเมธอด getJSONUrl() ได้ค่าอะไรอะครับ format มันถูกหรือเปล่า หรือมัน empty?






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-16 14:03:05 By : devahoy
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : devahoy เมื่อวันที่ 2014-06-16 14:03:05
รายละเอียดของการตอบ ::
ลองดูมาจาก https://www.thaicreate.com/mobile/android-spinner-from-php-mysql.html แต่ก็ปรับแก้นิดหน่อยเพราะว่าใช้แค่คอมลัมน์เดียวจากตัวอย่างใช้3คอลัมน์ ก็ไม่แน่ใจเหมือนกันว่า format มันยังคงถูกต้องอยู่หรือเปล่า

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-16 14:52:43 By : boom159
 

 

No. 3



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

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

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

ต้องลอง Debug หรือเรียกไฟล์ PHP โดยตรงดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-16 15:10:57 By : mr.win
 


 

No. 4



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



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


เรียกไฟล์ php จาก http://127.0.0.1/visit/getJSON_spinlight แล้วขึ้นแบบนี้ค่ะ

[{"light_detail":"??????????"},{"light_detail":"????????????"},{"light_detail":"????????????"},{"light_detail":"????stand????"},{"light_detail":"????stand????"},{"light_detail":"????? ????"}]

ข้อมูลเป็นภาษาไทยค่ะ เกี่ยวไหมไม่รู้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-16 15:25:17 By : boom159
 


 

No. 5



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

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

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

ถ้าภาษาไทยเป็นแบบที่ไปกำหนด Charset เป็น UTF-8 บน PHP/MySQL ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-16 15:29:15 By : mr.win
 


 

No. 6



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



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


เรียกผ่าน php
กลายเป็นแบบนี้แทน [{"light_detail":""},{"light_detail":""},{"light_detail":""},{"light_detail":""},{"light_detail":""},{"light_detail":""}]

แต่ถ้าเลือกให้แสดง id แทนซึ่งเป็นตัวเลขมันจะขึ้นค่าใน php ให้
[{"id_light":"1"},{"id_light":"2"},{"id_light":"3"},{"id_light":"4"},{"id_light":"5"},{"id_light":"6"}]

แต่ไม่ว่าจะยังไงก็ไม่ขึ้นใน spinner ในโปรแกรมอยู่ดี


ประวัติการแก้ไข
2014-06-16 17:25:53
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-16 16:04:06 By : boom159
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Android - เมื่อกดให้เรียก spinner ที่ดึงข้อมูลจาก MySQL Database ให้แสดงแอพจะค้าง แก้ไขอย่างไรดีค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่