안드포이드 어플 안에서 키보드를 보이게 할 때와 보이지 않게 할 때가 있습니다.
간단히 검색을 하기 위헤서 EditText에 글자를 입력하고 Enter를 입력하고 나서는 바로 키보드가 보이지 않게 한다던지 할때... 없애주면 좋겠지요... 그렇게 하기 위해서는 아래와 같은 방법으로 하게 되면 됩니다.

키보드 보이게 하기

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(editText, 0);


키보드 숨기기
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 






안드로이드도 아이폰처럼 기기를 옆으로 돌렸을 때 화면이 따라 회전하는 기능을 갖고 있습니다. 어떨 때 보면 좋은 기능이기도 하지만, 어떨 때에는 필요치 않는 기능이기도 합니다. 세로의 화면 상태에서만 기능을 사용하고 싶다면 "portrait"으로 설정해 두어야 하는데, AndroidManifest.xml 파일안에 Activity 설정 정보를 수정해 주어야만 합니다.

설정방법은 AndroidManifest.xml파일을 선택하시고 난 다음에
탭부분에서 Application을 선택하게 됩니다.
그러고 난 다음 그림과 같이 해당 Activity를 선택하고 나서 Screen orientation에서 portrait을 선택해 주시고 저장하시면 됩니다.

xml의 내용을 보시게 되면
android:screenOrientation="portrait"

이 내용이 추가된 것을 확인하실 수 있습니다.





java에서 http에 request를 요청할때 post방법과 get방법이 있는데..
그중에서 post방법으로 요청을 하게 될 때 필요한 방법입니다.
핵심은
conn.setDoOutput(true);
이렇게 해 주면 됩니다.

get방식으로 하게 된다면
conn.setDoInput(true);
로 하게 되면 get방식이 됩니다.

try {
    // Construct data
    String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
    data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");

    // Send data
    URL url = new URL("http://address/");
    URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    wr.write(data);
    wr.flush();

    // Get the response
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    while ((line = rd.readLine()) != null) {
        // Process line...
    }
    wr.close();
    rd.close();
} catch (Exception e) {
}





안드로이드 개발을 하게 되면서...
웹과의 통신을 하거나.. 스트리밍을 하게 될 때 처음에 이런 에러를 접하게 될 경우가 있습니다.
머 그냥 간단하게 permission 설정을 해주지 않아서 생긴 에러입니다. 이것을 해결 하게 위해서는
manifest파일에 android.permission.INTERNET을 추가해 주면 됩니다.

에러 화면은 이렇습니다. LogCat에 나와 있는 상태가

이런 모습으로 보일 것이고... permission 설정은


현재 진행중인 프로젝트에서 AndroidManifest.xml파일을 열어줍니다.
그리고 나서는


Permissions 탭을 선택하고 나서


Add버튼을 투르게 되면 다이얼로그 창이 하나 나타나게 됩니다.


Uses Permission을 선택하고 OK를 누르고 나갑니다.


마지막으로 Name의 콤보박승에서 android.permission.INTERNET을 선택하고 저장하게 되면 됩니다.
xml파일의 내용을 확인하게 되면

이런식으로 추가된 내용을 확인할 수 있습니다.

이렇게 되면 문제 없이 원하는 대로 실행이 될 것입니다.



다른 사람들이 만든 안드로이드 어플을 에뮬레이터에 설치하는 방법을 모르고 있다가 이제서야 알게 되었네요...
우선 자신이 피요한 .apk 파일을 받아서는 원하는 위치에 둡니다.. 아니면 SDK가 설치된 곳의 tools 폴더이 파일을 이동 시켜 둡니다.
SDK의 tools폴더가 환경변수에 path설정이 되어 있다면 아무 위치에 두어도 상관 없습니다.
그리고 나서 에뮬레이터가 실행되어 있는 상태에서
adb install 파일이름.apk
이렇게 해주게 되면  설치가 됩니다.

설치가 성공되었을 때의 화면 입니다.

삭제하는 방법은
adb uninstall 파일이름.apk
이렇게 하면 삭제가 되고

재설치 하는 방법은
adb install -r 파일이름.apk
하시게 되면 됩니다.






회사일도 하고... 프리로도 일도좀 하다보니 안드로이드 공부하는걸 게을리하게 되었네요...
그러다 보니 2.0버전이 새로 나왔더군요 ㅎㅎ
그러고 나서 2.0을 새로 받아서 실행할려고 보니... 예전과 방법이 조금 틀려져서는... ㅜㅜ/// 여러번 삽질을 좀 하게 되었습니다.

SDK를 다운 받아서는 압축을 풀고 나면
이런 내용들이 있습니다...
예전같은 버전에서는 그냥 압출풀고 Eclipse에서 path만 맞춰주면 되었지만... 이번에는 exe의 실행파일이 있습니다.
처음에는 이걸 멋모르고 실행했더니
이렇게 되더군요... ㅜㅜ///
그래서 주소를 http://dl-ssl.google.com/android/repository/repository.xml을 추가하고는 했더니

이렇게 되길래...Install Selected로 해서 설치를 했지만...

나중에 설치가 끝나고 보면
변화가 없더군요... 정말 여기서부터는 정말 좌절이였는데...

우선 Eclipse에서 Android Plugin을 설치하고 나서 하는 방법이 있어서 그렇게 했습니다.
우선 Eclipse에서 Android Plugin을 설치하는 방법은
[Android] Eclipse에 Android ADT 설치 방법
을 통해서 해주시면 됩니다... 버전이 바뀌어서 보이는 내용은 다를 수 있으나, 순서는 똑같기에...

이렇게 ADT를 설치하고 나면 Eclipse에서
이 부분을 클릭하거나,

Window -> Android SDK and AVD Manager를 선택하도록 합니다...

선택을 하게 되면
이렇게 아까와 같은 화면에서... Avaliable Packages를 선택하면 아까는 안보이는 것들이 이번에는 전부다 보이게 됩니다. 왜그런지는 저도 잘 모르겠습니다... ㅜㅜ// 그래서 이 모든것들을 선택하고 Install Selected로 해서 설치를 하게 되면

이렇게 설치가 되었다는 정보를 볼 수 있습니다. 보면 SDK Platform Android 2.0.1 API 6, revision 1이라는 항목이 보입니다.

정말이지... 처음에 받아서는 안되길래... 얼마나 조마조마하고 신경이 쓰이던지요 ㅎㅎ
더군다나... 안드로이드 공부를 못하고 있다가 오랜만에 해볼려고 하는데 잘 안되서는... ㅜㅜ
그동안 노트북도 포멧하고 해서는... 셋팅도 다시하느라 속도 많이 터졌었는데.. ㅎㅎ
그래도 해결하고 나니... 다시 안드로이드 공부를 버닝해야겠습니다... :-p





안드로이드를 하게 되면 한 화면으로 모든 것을 하기엔 힘들게 되어 있습니다.
머 모바일이 여러 화면들에 다른 기능들로 나누어져 있다 보니..
그럼 새로운 화면... 즉 layout을 추가 하는 방법으로는

package explorer에서 자신의 프로젝트로 간 다음... 화면과 같이 res 디렉토리에서 layout에 가서는 오른쪽 마우스 버튼을 누르게 되면 화면과 같이 나오게 됩니다.

그리고 New에 가서는 File을 선택하면 됩니다.

그리고는 layout 디렉토리에 추가하고자 하는 layout의 이름을 xml확장명으로 넣어주시면 됩니다.

이렇게 해서 Finish를 하게 되면
그림과 같이 layout은 추가 되었으나... X표시로 error가 있다고 하는 군요...
지금 상태는 단순히 텍스트 파일 형태로만 만들어져 있는 상태이므로... layout이라는 것을 만들어 줘야 합니다.

그림과 같이 아래쪽의 탭으로 이동하고 나서 xml이라는 형식을 적어주고 나면
이렇게 완료가 되지 않았고 error가 있다고 나옵니다... 여기에서 또 추가해 주어야 할 것이
위에서 LinearLayout을 찾아서는 오른쪽으로 옮겨줍니다. 이렇게 하게 되면 레이아웃은 만들어 지고
맨 왼쪽 노란색 박스 안에서 보여졌던 빨간색의 X표시로 에러라는 것은 보이지 않게 됩니다.

이런.. 레이아웃 만드는 것도 좀...자동으로 만들어 지는 것이였음 좋겠군요... 익숙하면 머 불편하지는 않지만 ㅜㅜ



eclipse를 활용해서 안드로이드에 버튼 컨트롤을 생성해 보겠습니다.
저는 xml을 직접 수정하는 것이 귀찮은 관계로...
eclipse에 쉽게 쉽게 해볼렵니다...

우선... 기본적인 프로젝트를 생성하고... layout 부분의 main.xml을 펼치게 되면...
이것과 같은 화면이 보이실 겁니다.
그럼 여기에서 필요없는... 저 Hello World... 어쩌구는 지우시고...
View 부분의 Button을 드래그해서 레이아웃 부분에 옮겨 주시거나...
Outline에 보면 "+" 버튼이 보이실 겁니다... 이것을 누르게 되면
이것과 같은 다이얼로그가 나오고... 추가할 수 있는 여러가지 들이 나오지만... button이라고 치면.. button컨트롤이 보이실 겁니다. OK를 누르게 되면
이렇게 화면이 바뀌게 됩니다.

흔히 MFC나 Win32를 하게 되면 컨트롤을 만들고 그것에 대한 ID를 만들어 주게 됩니다. 여기에서도 마찬가지로
eclipse의 View부분을 보게 되녀
이족 부분을 보게 되면...
Peoperties에서 찾아보면
Id 부분에서 버튼의 ID를 변경할 수 있고 버튼의 스타일도 변경할 수 있습니다.
또한 Text부분을 통해서는 버튼의 글자도 바꿀 수 있습니다.
Text 속성 부분에 직접 버튼의 텍스트를 입력할 수도 있지만... values에 있는 strings.xml을 통해서도 글자를 변경할 수 있습니다.
Text @string/Button01
이런식으로 해준다면 strings.xml 안에 Button01이라는 ID를 갖는 string이 존재하는 것입니다.
strings.xml 안에는
이런식으로 되어 있겠지요...

머 이렇게 하고 실행을 하게 되면...
이런 결과가 나옵니다...

머 버튼의 종류는 다양하지만... 보통 이런식으로 하면 사용할 수 있습니다...
다음엔 버튼을 클릭했을 때 이벤트 처리나 해봐야겠군요 :)

+ Recent posts