마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

핸드폰을 PC에 연결해서 이클립스에서 실행해야만 정상적으로 실행되요

0 추천
package com.example.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;



public class MainActivity extends Activity  {
	
	ListView listView;
	Spinner spinner;
	
	ArrayList<String> list;
	static ArrayAdapter<String> adapter;
	ArrayAdapter<String> adapter2;
	  int curPos = 0;
	boolean is = true;
	
	String Query;
	
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {

    	
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     	
                
		list = new ArrayList<String>();  
                    
        adapter2 = new  ArrayAdapter<String> ( this , android.R.layout.simple_spinner_item);
        adapter2.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item);
        Spinner spinner = (Spinner)this.findViewById (R.id.spinner);  
        spinner.setAdapter (adapter2);
        spinner.setOnItemSelectedListener(spnCountriesListener);

        adapter = new ArrayAdapter<String>(this,  android.R.layout.simple_list_item_1, list);
    	listView = (ListView)findViewById(R.id.list);
    	listView.setAdapter(adapter);
    	 
    	Query = String.format("select * from v_state ORDER BY username,blnum ASC");

    	
        handler2.sendEmptyMessage(1);
    	handler.sendEmptyMessage(1);
    	
    	
    //		    	
    }

    private Spinner.OnItemSelectedListener spnCountriesListener = 
    	    new Spinner.OnItemSelectedListener() { 
    	      public void onItemSelected(AdapterView parent, View v, int position, long id) { 
    	        Log.i("print", parent.getSelectedItem().toString()); 
    	        
        		Query="select * from v_state where username='"+parent.getSelectedItem().toString()+"' ORDER BY blnum  ASC";
        		
        		if ( parent.getSelectedItem().toString() ==" " ) Query = String.format("select * from v_state ORDER BY username,blnum ASC");
        		
        		Log.i("print", Query );

        		handler.sendEmptyMessage(1);

    	      } 

    	      public void onNothingSelected(AdapterView parent) { }             
    	  }; 
    	


	final Handler handler = new Handler(){
		   public void handleMessage(Message msg){
		           super.handleMessage(msg);
	
		           //Log.d("Log", "1 sec");
		           new MyAsyncTask().execute();
		           
		           this.sendEmptyMessageDelayed(0, 10);
		          
		   }
		};


		
		final Handler handler2 = new Handler(){
			   public void handleMessage(Message msg){
			           super.handleMessage(msg);
			          
			       //    Log.d("Log", "1 sec");
			           new MyAsyncTask2().execute();
			          
			       //   this.sendEmptyMessageDelayed(0, 1000);
			          
			   }
			};
		

			 private Handler handler5 = new Handler() {
			     @Override
			     public void handleMessage(Message msg) {

			    	 MainActivity.this.adapter.notifyDataSetChanged();
			    	 //MainActivity.this.listView.setSelectionFromTop(curPos,0);
			     }
			  };

				  
    
    ResultSet reset;
    int count=0;

    public void query2( String query )
    {
	    
	    Connection conn = null;
	    
	    
	    
	    
	    try {
	
			    Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();    
			    conn = DriverManager.getConnection("jdbc:jtds:sqlserver://218.234.17.183/elevator_state","sa","!@#$?><M");
			    Statement stmt = conn.createStatement();
			    
			    
		    	
			    reset = stmt.executeQuery(Query);

							int i=0;
		
							  int j=0;
							  if (is== false  )
								  for( j=0; j<count ; j++) 
								  list.set(j, " ");
							  
							  
							  while(reset.next()){
								if ( is )
								  count++;
							    final String str = reset.getString(12)+" "+reset.getString(1)+" "+reset.getString(4)+" "+reset.getString(5)+" "+reset.getString(6);
							   
							    
							    if ( is )
							    {
								   runOnUiThread(new Runnable() { 
					                   public void run() {
								   adapter.add(str);
								  
					               	}
					                		
					               });
								   
							    }
							    else list.set(i, str);
							    i++;
							   
							   
							}

							  
							  is=false;

			    

		            
			    conn.close();
	    	} 
	    
	    catch (Exception e)
		    {
		    	Log.w("111Error connection","" + e.getMessage());
		    }
	  
	  }

    public class MyAsyncTask extends AsyncTask<String, String, String>{
    	 
       // @Override
        protected void onPreExecute() {
               	
        }
         
       // @Override
        protected String doInBackground(String... params) {
        	//	handler6.sendEmptyMessage(0);
        		query2(Query);
        		handler5.sendEmptyMessage(0);
        	                
			return null;
        }
         
        //@Override
        protected void onPostExecute(String result) {

                   
        }
         
        //@Override
        protected void onCancelled() {
            super.onCancelled();
        }


    }
    
    public class MyAsyncTask2 extends AsyncTask<String, String, String>{
    	Connection conn = null; 
    	
        // @Override
         protected void onPreExecute() {
        	 
          
         }
          
        // @Override
         protected String doInBackground(String... params) {
              
        
     	    try {
     	    	//	Log.d("Log", "#####################");
     			    Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
     			 //   Log.i("Connection","**MSSQL driver load");
     			    
     			    conn = DriverManager.getConnection("jdbc:jtds:sqlserver://주소/DB명","아이디","비밀번호");
     			 //   Log.i("Connection","**MSSQL open");
     			    Statement stmt = conn.createStatement();
     			    ResultSet reset = stmt.executeQuery("select distinct username from elevator");
     			
						 runOnUiThread(new Runnable() { 
  			                  public void run() {

								adapter2.add(" ");
               	   
  			              	} 
  						  });
						 
						 
     			    while(reset.next()){
     			    	
     			    	if ( reset.getString(1) != null )
     			    	{
     			    	final String str = reset.getString(1);
   						 runOnUiThread(new Runnable() { 
   			                  public void run() {

								adapter2.add(str);
                	   
   			              	} 
   						  });
     			    	}  
     			    	
     			    }
     			    
     			    conn.close();
     			    
     	    	} 
     	   
     	    
     	    	catch (Exception e)
     		    {
     		    	Log.w("222Error connection","" + e.getMessage());
     		    }
 			
 			return null;
         }
          
         //@Override
         protected void onPostExecute(String result) {

 
         }
          
         //@Override
         protected void onCancelled() {
             super.onCancelled();
         }


     }
    
    
 
}




핸드폰에 올린 후.. 실행하면 리스트뷰에 아무것도 안뜨고요..

핸드폰을 PC와 연결한 후.. 이클립스에서 실행하면 제대로 동작합니다..

머가 잘못된건지 모르겠어요...

익명사용자 님이 2013년 2월 21일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...