2011년 6월 28일 화요일

[iPhone] stretchableImageWithLeftCapWidth

[UIImage imageNamed:@"green.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:0.0]

2011년 6월 16일 목요일

[git] upload github and commit

$ mkdir ~/Hello-World
$ cd ~/Hello-world
$ touch README
$ git add README (or git add *)
$ git commit -m 'first commit'
$ git remote add origin git@github.com:username/Hello-World.git
$ git push origin master

update remote to your file
$ git pull

update your file to remote
$ git add *
$ git commit -m 'second commit'
$ git push origin master

[iPhone] Tabbar and Navigation

Do you want UITabBarController inside UINavigationController?

this is solution.

source
https://github.com/luckyjun/TabbarAndNavigation

2011년 6월 6일 월요일

[Android] SharedPreference

안드로이드에서 SharedPreference를 이용하면 어플리케이션에 연관된 간단한 데이터(String, int, boolean, 등등)들을 쉽게 파일시스템에 저장하고 가져올 수 있습니다.  간단한 코드를 통해 사용법을 알아보겠습니다.

데이터는 항상 키와 데이터가 짝으로 저장됩니다. 키를 통해서 데이터를 저장하고 또 가져올 수 있습니다. 

데이터 가져오기


SharedPreferences prefs = getSharedPreferences("PrefName", MODE_PRIVATE);
String account = prefs.getString("key_account", "");
boolean keepcheck = prefs.getBoolean("key_keepaccount", true);

Context.getSharedPreferences함수를 통해서 SharedPreferences 인스턴스를 가져옵니다. getString, getBoolean, getInt, 등을 통해 첫번째인자는 키를 주고 두번째 인자는 디폴트값입니다. 만약 해당 키에 대한 데이터가 존재하지 않는 경우 디폴트값을 리턴해줍니다. 

데이터 저장하기


SharedPreferences.Editor ed = prefs.edit();
ed.putBoolean("key_keepaccount", keepaccount);
ed.putString("key_account", account);
ed.commit();

데이터를 저장하기 위해서는 SharedPreferences.Editor 인스턴스를 edit()함수를 통해 가져옵니다. 그리고 putString, putInt, putBoolean등을 통해 데이터를 저장한후 반드시 commit()을 호출해주어야 실제로 파일에 저장이 됩니다.

Activity와 관련하여 저장해야할 값들이 있는 경우 편리하게 Activity.getPreferences(int mode)를 이용할 수도 있습니다.


2011년 6월 1일 수요일

[Android] AsyncTask 백그라운드 작업


private class ConnectTask2 extends AsyncTask<Void, Void, Void> {
private ProgressDialog progressDialog;

@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(context);
progressDialog.setMessage("트위터로 로그인 중입니다.");
progressDialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
cancel(false);
}
});
progressDialog.show();
}

@Override
protected Void doInBackground(Void... v) {
twitterLogin();
return (Void)null;
}

@Override
protected void onProgressUpdate(Void... v) {
//TODO show progress
}

@Override
protected void onPostExecute(Void v) {
progressDialog.dismiss();
((TextView) findViewById(R.id.txtTwitterConnect)).setText("트위터연동중");
((Button) findViewById(R.id.btnTwitterConnect)).setVisibility(View.INVISIBLE);
((TextView) findViewById(R.id.TwitterID)).setVisibility(View.VISIBLE);
((TextView) findViewById(R.id.TwitterID)).setText(twitterScreenName);
}
}