자바 Java2014. 11. 26. 01:21




String extractNumber(String str)

 {

if (str == null)

return str;


StringBuffer sb = new StringBuffer();

int length = str.length();

for (int i = 0; i < length; i++) {

char curChar = str.charAt(i);

if (Character.isDigit(curChar))

sb.append(curChar);

//else return sb.toString();

else break;

}

return sb.toString();

 } 





'자바 Java' 카테고리의 다른 글

오늘은 무슨 요일  (0) 2014.12.24
Thread interrupt  (0) 2014.12.05
자바 환경 변수 설정 CLASSPATH, JAVA_HOME, Path  (0) 2014.07.24
구글 개발자 등록 과정  (0) 2014.07.24
프로젝트 구조  (0) 2014.07.23
Posted by 코드버무려
Android 안드로이드2014. 11. 25. 11:10

AVD에서 먼저 구글 광고가 나오지 않았다.

그리고 진짜 스마트폰에서도 똑같은 버젼의 앱을 올렸더니 구글 광고를 볼 수 없었다.


Posted by 코드버무려
서버사이드2014. 11. 25. 10:42



필드명 변경 또는 속성변경

ALTER TABLE 테이블명 CHANGE 옛필드명  새로운필드명  새자료형  [NOT NULL];

ALTER TABLE topic CHANGE author user_id INT(11) NOT NULL;

'서버사이드' 카테고리의 다른 글

jQuery ajax GET 방식 php  (0) 2017.01.26
styles.css 갱신 강제로  (0) 2017.01.15
Welcome{ *Login, *Register, fb}  (0) 2016.10.15
오리엔트db 설치 server\jvm.dll 에러  (0) 2015.09.23
lower_case_table_names  (0) 2014.12.06
Posted by 코드버무려
Android 안드로이드2014. 11. 24. 16:39

안드로이드 허니콤 API 11 이상에서 actionbar를 바로 사용할 수 있다. 그러나 안드로이드 API버전 11미만에서 액션바를 사용하려면 몇 가지 작업이 필요하다.


import android.support.v7.app.ActionBarActivity;

import android.support.v7.app.ActionBar;


그리고 Activity는 ActionBarActivity를 상속받는다.

public class MyActivity extends ActionBarActivity { } 로 고친다.


....


액션바를 사용하려고 위 임포트 구문을 먼저 코드 앞머리에 두었다.

그리고 android-support-v7-appcompat를 임포트 했다. 

그랬더니....


[2014-11-24 16:09:17 - google-play-services_lib] Unable to resolve target 'android-9'

[2014-11-24 16:10:12 - android-support-v7-appcompat] E:\JavaAndroid\adt-bundle-windows-x86-20140702\sdk\extras\android\support\v7\appcompat\res\values-v21\styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'.

............

.......

....


위와 같은 에러가 주르륵 나왔다.

아직 해결법을 찾지 못했다.

다만 구글링을 하면서 를 http://stackoverflow.com/questions/18293088/adding-support-libraries-to-android-project 를 발견했다.


이쯤에서 말하고 넘어가야할 중요한 점은 위 에러가 지금 진행중인 프로젝트에서 발생한 것이 아니다. 구글에서 만든 안드로이드 android-support-v7-appcompat 라이브러리에 빨간바탕에 흰색 X마크가 붙으면서 에러가 뜬다. 구글로 해결책을 찾아보니 대부분 minSdkVersion, targetSdkVersion를 낮추거나 높이거나와 같은 답변 일색이다. 영어가 짧은 나로서는 그렇게 이해했다. 프로젝트에 생긴 에러가 아니고 추가한 라이브러리에 뜨는 오류임을 이해못 한 답변이 많다.


갈길이 앞으로 창창 대로다?. 아스팔트나 꽃길까지는 아니라도 신작로는 될줄 알았다. 지원(서포트 support) 라이브러리를 깔자 마자 뜨는 에러! 불과 몇일 전에 안드로이드 SDK도 업데이트했었다.


....

........


2시간 정도 시간과 시간을 보내고 에러를 사라지게 만들었다. 해결이라고 보기에는 언어적으로 어폐다. 폴더를 뒤적거려 ADT를 업데이트하기 전 appcompat_v7 폴더를 찾아내 프로젝트뷰에 임포트했기 때문이다. 이클립스 프로젝트뷰에는 appcompat_v7 대신 android-support-v7-appcompat로 표시가 된다. 당분간은 Unable to resolve target 'android-9'과 같은 에러가 아래로 죽 뜨지 않는 appcompat_v7를 잘 보관해두는 쪽으로 가닥을 잡았다.

Posted by 코드버무려
Android 안드로이드2014. 11. 24. 14:18

















public class CustomView extends View {

private Path drawPath;


  //커스텀뷰를 만들 때 Paint 객체는 두개가 필요하다.

  //하나는 drawBitmap()함수에 인자로 넣는 mBitmapPaint.

  //두번째는 나머지 모든 그릴 위치에 쓰일 drawPaint다.

private Paint drawPaint, mBitmapPaint;  //커스텀뷰를 만들 때 Paint 객체는 두개가 필요하다.

private Canvas mCanvas;

private Bitmap mBitmap;

int iDisplayWidth, iDisplayHeight;

public MemoingView(Context context, AttributeSet attrs){

   super(context, attrs);    

      

//현재 화면의 크기를 구할 때 사용

   Display display=((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();

   iDisplayWidth = display.getWidth();

   iDisplayHeight = display.getHeight();

   

   

    drawPath = new Path();

   

    drawPaint = new Paint();    

    drawPaint.setAntiAlias(true);

    drawPaint.setColor(0xffff0000);

    drawPaint.setStyle(Paint.Style.STROKE);

    drawPaint.setStrokeJoin(Paint.Join.ROUND);

    drawPaint.setStrokeCap(Paint.Cap.ROUND);

   

    mBitmapPaint = new Paint(Paint.DITHER_FLAG);

 

    mBitmap = Bitmap.createBitmap(iDisplayWidth, iDisplayHeight, Bitmap.Config.ARGB_8888);

    mCanvas = new Canvas(mBitmap);

}


    

    @Override

    protected void onSizeChanged(int w, int h, int oldw, int oldh) {

    super.onSizeChanged(w, h, oldw, oldh);

    }

    


    

    @Override

    protected void onDraw(Canvas canvas) {

    canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);    

    canvas.drawPath(drawPath, drawPaint);

 

    }    

    

    @Override

    public boolean onTouchEvent(MotionEvent event) {

    float touchX = event.getX();

    float touchY = event.getY();

   

    switch (event.getAction()) {

    case MotionEvent.ACTION_DOWN:

       drawPath.moveTo(touchX, touchY);

       break;

    case MotionEvent.ACTION_MOVE:

       drawPath.lineTo(touchX, touchY);

       break;

    case MotionEvent.ACTION_UP:

    drawPath.lineTo(touchX, touchY);

       mCanvas.drawPath(drawPath, drawPaint);

       drawPath.reset();

       break;

    default:

       return false;

    }

   

    invalidate();

    return true;

    }





Posted by 코드버무려