안드로이드 112

안드로이드 onConfigurationChanged 화면 방향 상태 알아보기

안드로이드 기능에 대해 아주 초보적이고 미흡하지만 하나씩 알아가는게 참 솔솔하다. 어려운 점이 있다면 알고나면 별것 아닌 내용인것들이 하나를 알아가는데 시간이 참 많이 소요된다는 점..ㅋㅋ 어떻게든 책을 보고 서핑해서 알아내서 해결하고 나면 나름 뿌듯한 느낌이 드니 다행이다. 저와 같은 초보 개발자들을 위해 올려 놓는만큼 많은 정보 함께 공유하면 좋겠습니다. * 필요성 - 가로모드, 세로모드 두가지 화면에 맞는 레이아웃을 제공해야 한다. - 시나리오상 각 기능에 맞는 화면 인터페이스를 제공하여 어플리케이션 실행할 수 있어야 한다. * 적용방법 - Manifest.xml 파일에 android.configChanges 속성 추가, 변화항목 지정 - Java 파일 Activity 내부에 onConfigurat..

android.os.NetworkOnMainThreadException 에러

android.os.NetworkOnMainThreadException 에러 이 예외는 네트워크 작업이 UI 스레드(메인 스레드)에서 동작하기 때문에 발생하며 안드로이드 3.0 이전까지는 발생하지 않던 예외이다. 안드로이드 3.0부터는 지연이 발생할 수 있는 네트워크 작업이 UI 스레드에 영향을 주는 것을 원천적으로 막고 있다. 그래서 안드로이드 3.0 이후 버전을 사용할 경우에는 네트워크 작업을 UI 스레드가 아닌 별도의 스레드(AsyncTask 등)에서 처리해야 한다. 이것이 정상적인 처리 방법이며 혹여 단순한 테스트를 하는 경우나 아주 부득이한 경우에는 다음과 같은 코드를 사용해서 이러한 정책을 우회할 수 있다. if(android.os.Build.VERSION.SDK_INT > 9) { Stric..

안드로이드 new OutputStreamWriter(http.getOutputStream(), "EUC-KR") 에서 에러 해결법

예제 코드 보면서 하고 있는데요 URL을 제가 APMsetup으로 구축한 서버로 바꾸면 에러는 안뜨는데 어플이 죽지도 않고 반응을 안하네요 로그 찍어보니깐 OutputStreamWriter outStream = new OutputStreamWriter(http.getOutputStream(), "EUC-KR"); 이부분에서 에러나는데 혹시 왜 그러는지 아시는분 있나요?? 전체코든느 package com.example.hello; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; ..

Http Post 방식으로 웹서버와 자료를 주고받는 예제

다음 프로그램은 http://korea-com.org/foxmann/lesson01.php 와 자료를 주고받는 예제이다. [주의 사항] 1. http://korea-com.org/foxmann/lesson01.php 는 실습을 위해 임시로 만든 페이지이므로 언제든지 내 맘대로 삭제해 버릴 수 있다. 2. 위의 사이트를 해킹하는 행위는 형사 처벌을 받게 되므로 주의해야 한다. 3. 해킹 시도시 접속자의 ip를 추적해서 사용자의 컴퓨터를 포맷해 버리는 악랄한(?) 프로텍트를 사용하고 있으므로 특히 주의한다. 실행 결과 : 페이지1로 전송하고 페이지2로 결과 받음 main.xml Manifest.xml에 다음과 같은 퍼미션을 줘야 한다. project package com.http_post; import ja..

[Android] 안드로이드 플랫폼에서 HTTP POST 요청 처리하기 ( XML 파싱 )

안드로이드 플랫폼 HttpPost 요청 처리 구현 (XmlPullParser) 안드로이드 플랫폼에서 Http 요청을 보내서 값을 받아오는 방법중 HttpPost, HttpGet, 방식이 있는데, 쓰는방법은 비슷하다. 아무래도 왠만하면 Post 방식을 쓰는게 좋지 않을까 싶다. 예제 구현 방법은 간단하게 값 2개를 "euc-kr" 로 인코딩해서 Vector에 집어넣고, JSP Page로 보내서 JSP 페이지에서 지지고 볶은 다음, 안드로이드로 보낼 값들을 XmlPullParser로 받을수있게, xml 형식으로 내뿜으면 알아서 String 으로 return 됩니다. 그후 리턴값을 XMLPullParser에 집어넣어서 파싱합니다. 구현순서 1. 요청에 필요한 값들을 BasicNameValuePair 형식(ke..

펌자료) webview 가 보이지 않을때, javascript 실행 방지

web page에 반복실행중인 자바 스크립트가 있을경우, 어플리케이션이 최소화 되어도, 지속적으로 스크립트가 실행이되서 CPU 점유율이 높아지는 현상이 있다. 이때, 아래와 같이 해결... /* (non-Javadoc) * @see android.app.Activity#onPause() */ @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); mWebView.pauseTimers(); } /* (non-Javadoc) * @see android.app.Activity#onResume() */ @Override protected void onResume() { // TODO Auto-generated..

펌자료) 안드로이드 WebView shouldOverrideUrlLoading 메소드의 역할

# WebViewClient를 상속받은 클래스 정의 WebViewClient 클래스를 상속받아 구현합니다. 이 안에 shouldOverrideUrlLoading() 메소드를 구현하지 않으면 웹뷰 내 링크 터치할 때 연결 프로그램(기본 브라우저, 크롬 등) 설정창이 뜹니다. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 import android.webkit.*; class WebBrowserClient extends WebViewClient { /* * 웹뷰 내 링크 터치 시 새로운 창이 뜨지 않고 * 해당 웹뷰 안에서 새로운 페이지가 로딩되도록 함 */ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadU..

펌자료) onResume/onPause onStop/onStart 차이점

!) 아래 내용은 ICS (4.0.x) 이상 버전과는 맞지 않습니다. ICS 버전의 폰들 중에는 power button 을 눌렀을 때 onPause() onStop() onStart() onResume() 이 반복적으로 불리는 경우도 있었습니다. JellyBean 버전의 경우 power button 을 눌르면 onPause() onStop() 이 불리고 다시 power button 을 눌러 lock screen 에는 아무 이벤트 함수 불리지 않고 lock screen 을 해제해야 onStart() onResume() 이 불리는 점 확인하였습니다. 1. onResume()/onPause() onPause() 함수는 Activity 위에 다른 Activity 가 올라오거나 하여 focus 를 잃었을 때 불린..

[안드로이드] Binary XML file line #13: Error inflating class fragment 해결 방법

이 에러는 해결할 첫번째 방법 xml Layout에 커스텀 뷰를 넣을 경우는 대부분은 아시겠지만.. Packgage : com.test Class : CustomComponent 위를 main.xml에 넣을려구 할 경우 다음과 같이 작성 한다.. 하!지!만! 이렇게 작성할 경우 가장 많이 보이는 이런 비슷한 에러를 볼 수 있다. Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class com.test.Com~~~~~ 열심히 구글링을 해본 결과... 역시나 답은 있었다. 생성자에 꼭 AttributeSet을 넣어야 하는것이다. public CustomComponent (Context context) { ..

안드로이드 Touch 이벤트 처리하기

안드로이드 터치 이벤트가 발생시 처리하는 방법 package com.example.touchex; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.view.MotionEvent; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); View v = new MyView(this..

반응형