2014-09-15 10 views
-1

은 안드로이드에 새로운 해요, 내가 좋아하는 버튼을 선언하는 차이점이 무엇인지 알고 싶어요.차이 인스턴스화 내가 '

+0

어떤 종류의 차이가 있습니까? 이 두 가지 솔루션은 동일한 결과를 가져옵니다. – 2Dee

+0

instatiation에서 @ 2Dee 차이점, 다른 하나 대신 사용하는 것이 가장 좋습니다 ... –

답변

1

첫 번째 선언을 사용하는 경우 xml에서 버튼을 정의해야합니다. 두 번째에서는 프로그래밍 방식으로 버튼을 만듭니다. 또한

xml based layout is comparatively fast 

xml based code at the end it converted in to java code by the compiler 

and if you will use the second approach you have to do allot of things like setting the 

width and height, position where it to be shown and by doing that 

Your code will be messy 

So it its better to use xml based layouts 
+0

많은 설명을 해 주셔서 감사합니다. 두 번째 옵션에서 나는 버튼 속성도 xml에 정의해야합니까? –

+0

아니요 두 번째 코드를 사용하는 경우 프로그래밍 방식으로 모든 선언을 수행해야합니다. – Burak

+0

글쎄, 정말 고마워! 이제는 더 명확 해졌습니다. –

1

차이가있는 위치입니다 정의 할 수 있습니다. 그런 다음 id에 ID를 추가합니다 (아마도 새 ID). 첫 번째 코드를 실행하려면 버튼을 xml 레이아웃 리소스 파일에 선언해야합니다. 이것은 안드로이드 프레임 워크에서 xml (실제로는 자바로 변환되지만 최적화 된 방식으로)에서 레이아웃을 읽도록 최적화되어 있기 때문에 가장 빠른 방법입니다. 레이아웃에 버튼을 추가하지 않아도 두 번째 코드는 레이아웃 파일을 필요로하지 않으므로 '화면 상'이 아니므로 버튼을 사용할 수 없습니다. 당신이 Button in xml를 선언하면

1

있다는 차이가 두 번째 당신이 코드에서 버튼을 선언이다는보기 등

2

는 당신이 제공해야 layoutsetContentView(int)를 사용하여 당신은 당신이

같은 초기화를해야 프로그래밍 Button을 만들려면이

@Override 
protected void onCreate(Bundle savedInstanceState) { 
setContentView(R.layout.your_layout);//a button with id button should present in this layout 
button = (Button) findViewById(R.id.button); 
button.setOnClickListener(this); 
} 

같은 Button를 초기화 Activity받는

@Override 
protected void onCreate(Bundle savedInstanceState) { 
button = new Button(this); 
button.setId(1);//some random integer value 
setContentView(view);//some view 
button.setOnClickListener(this); 
} 

setContentView(View view) for 2nd case