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 ขอความช่วยเหลือ เกี่ยวกับ Show Dialog ตอนที่กดเลือก Listview หน่อยครับ



 

Android ขอความช่วยเหลือ เกี่ยวกับ Show Dialog ตอนที่กดเลือก Listview หน่อยครับ

 



Topic : 097418



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



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




รบกวนสอบถามหน่อยครับ
พอดีว่าผมต้องการให้มีการส่งค่าจากตัวแอพ ไปยัง service และให้ service เข้า case ว่าตรงกับ case ไหนตามไฟล์ WebServiceServer.php และทำการส่งข้อมูลเป็น Array Jason กลับไปยังตัวแอพ และให้ตัวแอพโชว์ข้อมูล โดยการประยุกต์ ตาม https://www.thaicreate.com/mobile/android-topic-json.html อะครับ พอลองรันดูแล้วส่งข้อมูลตาม case ที่ตั้งไว้ กลับไม่มีอะไรเกิดขึ้น เลยมาขอความช่วยเหลืออะครับ ขอบคุณครับ


WebServiceServer.php
<?
		require_once("lib/nusoap.php");
		 
		//Create a new soap server
		$server = new soap_server();
		 
		//Define our namespace
		$namespace = "http://localhost/nusoap/WebServiceServer.php";
		$server->wsdl->schemaTargetNamespace = $namespace;
		 
		//Configure our WSDL
		$server->configureWSDL("SPUguide");
		 
		// Register our method and argument parameters
        $varname = array(
                   'idAction' => "xsd:string"
        );
		
		$server->register('HelloWorld',$varname, array('return' => 'xsd:string'));
		function HelloWorld($idAction)
		{
			
			$hostname = "localhost"; //ชื่อโฮสต์
			$user = "root"; //ชื่อผู้ใช้
			$password = ""; //รหัสผ่าน
			$dbname = "test"; //ชื่อฐานข้อมูล
			// เริ่มติดต่อฐานข้อมูล
			$dbCon=mysql_connect($hostname, $user, $password) or die("ติดต่อฐานข้อมูลไม่ได้");
			// เลือกฐานข้อมูล
			mysql_select_db($dbname,$dbCon) or die("เลือกฐานข้อมูลไม่ได้");
			mysql_query('SET CHARACTER SET UTF8');
			switch($idAction){
				case 'sub':
					$strSQL = "SELECT * FROM subject";
					$result = mysql_query($strSQL);
					$intNumField = mysql_num_fields($result);
					$resultArray = array();
					while($obResult = mysql_fetch_array($result)){
						$arrCol = array();
						for($i=0;$i<$intNumField;$i++){
							$arrCol[mysql_field_name($result,$i)] = $obResult[$i];
						}
						array_push($resultArray,$arrCol);
					}
					mysql_close($objConnect);
					return json_encode($resultArray);
					break;
			}
		}
		
		// Get our posted data if the service is being consumed
		// otherwise leave this data blank.
		$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
		 
		// pass our posted data (or nothing) to the soap service
		$server->service($POST_DATA);
		exit(); 
?>

MainActivity.java
package com.andriod.testservice;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {

	private final String NAMESPACE = "http://10.0.2.2/nusoap/WebServiceServer.php";
    private final String URL = "http://10.0.2.2/nusoap/WebServiceServer.php?wsdl"; // WSDL URL
    private final String SOAP_ACTION = "http://10.0.2.2/nusoap/WebServiceServer.php/HelloWorld";
    private final String METHOD_NAME = "HelloWorld"; // Method on web service
    
	@SuppressLint("NewApi")
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// Permission StrictMode
		if (android.os.Build.VERSION.SDK_INT > 9) {
			StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
					.permitAll().build();
			StrictMode.setThreadPolicy(policy);
		}
		final ArrayList<HashMap<String, String>> MyArrList = new ArrayList<HashMap<String,String>>();
		final ListView lisView1 = (ListView)findViewById(R.id.listView1);
		// btnSend
		Button btnSend = (Button) this.findViewById(R.id.btnSend);
		btnSend.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				EditText txtName = (EditText) findViewById(R.id.txtName);
				
				SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
				request.addProperty("idAction",txtName.getText().toString());
				SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
				envelope.setOutputSoapObject(request);
				HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
				
				try {
					androidHttpTransport.call(SOAP_ACTION, envelope);
					SoapObject result = (SoapObject) envelope.bodyIn;
					
					 
					JSONArray data = new JSONArray(result.toString());
					
					HashMap<String, String> map;
					for(int i = 0; i < data.length(); i++){
						JSONObject c = data.getJSONObject(i);
						map = new HashMap<String, String>();
						map.put("SubjectID", c.getString("ID_Sub"));
						map.put("SubjectName", c.getString("Name_Sub"));
						MyArrList.add(map);
						
					}
					SimpleAdapter sAdap;
					sAdap = new SimpleAdapter(MainActivity.this, MyArrList, R.layout.activity_column,
							new String[] {"SubjectID", "SubjectName"}, new int[] {R.id.ColSubID,
							R.id.ColSubName});
					lisView1.setAdapter(sAdap);
				
				} catch (IOException e) {
					e.printStackTrace();
				}catch (XmlPullParserException e) {
					e.printStackTrace();
				}catch (JSONException e) {
					e.printStackTrace();
				}
			}
		});
		final AlertDialog.Builder viewDetail = new AlertDialog.Builder(this);
		lisView1.setOnItemClickListener(new OnItemClickListener(){
			public void onItemClick(AdapterView<?> myAdapter, View myView,int position, long mylng) {
				String sMemberID = MyArrList.get(position).get("SubjectID").toString();
				String sName = MyArrList.get(position).get("SubjectName").toString();
				viewDetail.setIcon(android.R.drawable.btn_star_big_on);
				viewDetail.setTitle("Subject Detail");
				viewDetail.setMessage("SubjectID : " + sMemberID + "\n"+ "SubjectName : " + sName + "\n");
				viewDetail.setPositiveButton("OK",new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialog,int which) {
										dialog.dismiss();
								}
						});
				viewDetail.show();
			};
		});
	}
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}


activity_main.xml
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
 
   	<TableRow
      android:id="@+id/tableRow1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" >
     
     <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Web Service Example "
        android:layout_span="1"
        android:textAppearance="?android:attr/textAppearanceLarge" />
  	        
 	</TableRow>

	<View
		android:layout_height="1dip"
		android:background="#CCCCCC" />
 
  <TableLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.1"
        android:orientation="horizontal">
		<TableRow>
      </TableRow>
      
      <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Input Name :"
          android:textAppearance="?android:attr/textAppearanceMedium" />

      <EditText
          android:id="@+id/txtName"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:ems="10" >
      </EditText>

		<Button
		    android:id="@+id/btnSend"
		    android:layout_width="wrap_content"
		    android:layout_height="wrap_content"
		    android:text="Send" />

		<ListView
		    android:id="@+id/listView1"
		    android:layout_width="match_parent"
		    android:layout_height="wrap_content" >
		</ListView>
  	        
 	</TableLayout >

	<View
		android:layout_height="1dip"
		android:background="#CCCCCC" />
   		  
   	
</TableLayout>

activity_column.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/linearLayout1" 
	android:layout_width="fill_parent"
	android:layout_height="fill_parent" >

	<TextView
	android:id="@+id/ColSubID" 
		android:layout_width="0dp"
		android:layout_height="wrap_content" 
		android:layout_weight="1"
		android:text="SubjectID"/>

	<TextView
		android:id="@+id/ColSubName" 
		android:layout_width="0dp"
		android:layout_height="wrap_content" 
		android:layout_weight="2"
		android:text="SubjectName"/>


</LinearLayout>




Tag : Mobile, Mobile, Web Service









ประวัติการแก้ไข
2013-07-05 22:20:56
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-07-04 21:05:53 By : fanciful View : 1303 Reply : 5
 

 

No. 1



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

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

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



Android Get Result / Search Data from Server via Web Service







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-04 21:12:35 By : mr.win
 


 

No. 2



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



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


ได้แล้วครับ ขอบคุณมากครับ


ประวัติการแก้ไข
2013-07-04 21:48:48
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-04 21:44:22 By : fanciful
 

 

No. 3



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



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


ขอความช่วยเหลืออีกหน่อบครับ มันไม่ยอมขึ้น Dialog ให้ตอนที่กดเลือก Section อะครับ โค้ดผิดตรงไหนหรือเปล่าครับ


SearchSubject.java
package project.app.spu_guide;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;

import android.R.string;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class SearchSubject extends Activity {
	
	private final String NAMESPACE = "http://10.0.2.2/nusoap/WebServiceServer.php";
    private final String URL = "http://10.0.2.2/nusoap/WebServiceServer.php?wsdl"; // WSDL URL
    private final String SOAP_ACTION = "http://10.0.2.2/nusoap/WebServiceServer.php/ServiceData";
    private final String METHOD_NAME = "ServiceData"; // Method on web service
    private final String ID_ACTIONsub = "Subject";
    private final String ID_ACTIONsch = "Schedule";
    
	@SuppressLint("NewApi")
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.search_subject);
				
		// Permission StrictMode
				if (android.os.Build.VERSION.SDK_INT > 9) {
					StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
							.permitAll().build();
					StrictMode.setThreadPolicy(policy);
				}
				final AlertDialog.Builder viewDetail = new AlertDialog.Builder(this);
				final Spinner spin = (Spinner)findViewById(R.id.spinner1);
				
					SoapObject result = onService(ID_ACTIONsub,null);
					if (result != null) {
						final ArrayList<HashMap<String, String>> MyArrList = new ArrayList<HashMap<String,String>>();
						HashMap<String, String> map;
						JSONArray data;
						try {
							data = new JSONArray(result.getProperty(0).toString());
						
							for(int i = 0; i < data.length(); i++){
								JSONObject c = data.getJSONObject(i);
									map = new HashMap<String, String>();
									map.put("SubjectID", c.getString("ID_Sub"));
									MyArrList.add(map);
							}
							SimpleAdapter sAdap;
							sAdap = new SimpleAdapter(SearchSubject.this, MyArrList, R.layout.column_spinner,
									new String[] {"SubjectID"}, new int[] {R.id.ColSubID});
							spin.setAdapter(sAdap);
							
							spin.setOnItemSelectedListener(new OnItemSelectedListener() {
								final ListView listView = (ListView)findViewById(R.id.listView1);
								@Override
								public void onItemSelected(AdapterView<?> arg0,
										View selectedItemView, int position, long id) {
									// TODO Auto-generated method stub
									String SubjectID = MyArrList.get(position).get("SubjectID").toString();
									final ArrayList<HashMap<String, String>> MyArrList2 = new ArrayList<HashMap<String,String>>();
									HashMap<String, String> map;
									SoapObject resultsch = onService(ID_ACTIONsch,SubjectID);
									if (resultsch != null) {
										try{
											JSONArray data = new JSONArray(resultsch.getProperty(0).toString());
											for(int i = 0; i < data.length(); i++){
												JSONObject c = data.getJSONObject(i);
													map = new HashMap<String, String>();
													map.put("Section", "Section");
													map.put("SubjectID", c.getString("ID_Sub"));
													map.put("SectionID", c.getString("ID_Sec"));
													map.put("Teacher", c.getString("Name_Teacher"));
													map.put("Date", c.getString("Date"));
													map.put("Time", c.getString("Time"));
													map.put("Location", c.getString("Room"));
													MyArrList2.add(map);
												
											}
											SimpleAdapter sAdap;
											sAdap = new SimpleAdapter(SearchSubject.this, MyArrList2, R.layout.column_listview,
													new String[] {"Section","SectionID"}, new int[] {R.id.ColSec,R.id.ColSecID});
											listView.setAdapter(sAdap);
											
											listView.setOnItemSelectedListener(new OnItemSelectedListener() {
												@Override
												public void onItemSelected(AdapterView<?>  myAdapter, View myView,int position, long mylng) {
													// TODO Auto-generated method stub
													String SubjectID = MyArrList2.get(position).get("SubjectID").toString();
													String SectionID = MyArrList2.get(position).get("SectionID").toString();
													String Teacher = MyArrList2.get(position).get("Teacher").toString();
													String Date = MyArrList2.get(position).get("Date").toString();
													String Time = MyArrList2.get(position).get("Time").toString();
													String Location = MyArrList2.get(position).get("Location").toString();
													viewDetail.setIcon(android.R.drawable.btn_star_big_on);
													viewDetail.setTitle("Section Detail");
													viewDetail.setMessage("SubjectID : " + SubjectID + "\n"
															+ "Section : " + SectionID + "\n" + "Teacher : " + Teacher
															+ "\n" + "Date : " + Date+ "\n" + "Time : " + Time
															+ "\n" + "Location : " + Location);
													viewDetail.setNegativeButton("OK",new DialogInterface.OnClickListener() {

														@Override
														public void onClick(
																DialogInterface dialog,
																int which) {
															// TODO Auto-generated method stub
															dialog.dismiss();
														}
														
													});
													viewDetail.show();
												}

												@Override
												public void onNothingSelected(
														AdapterView<?> arg0) {
													// TODO Auto-generated method stub
													
												}
											});
										}catch (JSONException e) {
											e.printStackTrace();
										} 
									}else {
										Toast.makeText(getApplicationContext(),"Web Service not Response!", Toast.LENGTH_LONG).show();
									}
									}
	
									@Override
									public void onNothingSelected(
											AdapterView<?> arg0) {
										// TODO Auto-generated method stub
										
									}
									
								});
							
						} catch (JSONException e1) {
							// TODO Auto-generated catch block
							e1.printStackTrace();
						}
					}else {
							Toast.makeText(getApplicationContext(),"Web Service not Response!", Toast.LENGTH_LONG).show();
						}
					
					
				
	}
	public SoapObject onService(String idAction,String obj){
		SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
		request.addProperty("idAction", idAction);
		request.addProperty("obj", obj);
		SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
		envelope.setOutputSoapObject(request);
		HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
		try {
			androidHttpTransport.call(SOAP_ACTION, envelope);
			SoapObject result = (SoapObject) envelope.bodyIn;
			return result;
		} catch (IOException e) {
			e.printStackTrace();
		}catch (XmlPullParserException e) {
			e.printStackTrace();
		}
		return null;
	}
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-05 22:19:55 By : fanciful
 


 

No. 4



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



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


ได้แล้วครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-05 22:41:13 By : fanciful
 


 

No. 5



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

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

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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-05 23:27:53 By : mr.win
 

   

ค้นหาข้อมูล


   
 

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