액티비티 만들기
1. 액티비티를 상속받는 자바클래스 작성
2. MainFest에 액티비티를 등록
3. 액티비티가 사용할 레이아웃xml파일 작성(옵션)
4. 1의 onCreate메소드에서 3파일을 뷰로 연결.
R.java -> 안드로이드에서 사용하는 자원들을 자바코드에서 참조할 수 있도록 참조값을 갖는 연결고리
R.java는 어플리케이션의 패키지명으로 지정된 패키지 경로에 자동생성됨 (자원등록 중 에러가 발생하면 생성되지 않음)
액티비티가 속한 패키지명도 어플리케이션의 패키지명과 동일하게 한다
[장점]
1. R.java랑 같은 패키지에 위치해서 R클래스를 따로 임포트 해주지 않아도 됨
2. Manifest에 액티비티 등록할때 패키지명 생략가능
3. 1,2는 패키지 구조 복잡도가 올라가면 다시 분리 되겠지만 코드관리를 위해
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="패키지명" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="20" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity"></activity> .으로 시작하면 앞에 어플의 패키지명 </application> </manifest> | cs |
activity태그는 필수로 name속성을 가져야하고 name속성의 값에는 사용할 자바 클래스 파일(Activity를 상속받은)을 지정해야 됨
엑티비티는 어플리케이션의 구성요소이자 하나의 화면단위이고 명령처리흐름을 갖음
어플리케이션은 최소 하나의 메인엑티비티를 가져야하고 메인엑티비티가 되는 녀석을 Intent-filter에 메인속성과 런처 속성을 가져야됨
1 2 3 4 | <intent-filter > <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> | cs |
7 8 9 10 | public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="안녕 안드로이도" android:id="@+id/tv" /> id 만들어놓기 <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="버튼이닷" android:id="@+id/btn" /> </LinearLayout> | cs |
1 2 | TextView tv =(TextView) findViewById(R.id.tv); Button btn = (Button) findViewById(R.id.btn); | cs |
xml에 정의한 UI 위젯의 참조값 얻기
1 2 3 4 5 6 7 8 9 | btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub tv.setText("Bye Android"); } }); | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="나이를 입력하세요" /> <EditText android:id="@+id/num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:inputType="numberSigned" /> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="버튼" /> <TextView android:id="@+id/age" android:layout_width="wrap_content" android:layout_height="wrap_content" /> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class MainActivity extends Activity{ private EditText inputAge; private Button btn; private TextView result; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); inputAge = (EditText) findViewById(R.id.num); btn = (Button) findViewById(R.id.btn); result = (TextView) findViewById(R.id.age); //지금은 이름을 대충 지었는데 id값들은 신중하게 잘 지어야됨 //모든 xml파일에서 하나의 id 네임스페이스를 사용함 | cs |
' IOT 기반 응용 SW과정 > Android, Arduino' 카테고리의 다른 글
Day89 안드로이드 엑티비티 전환 (0) | 2016.07.25 |
---|---|
Day88 (0) | 2016.07.22 |
Day87 (0) | 2016.07.21 |
Day86 (0) | 2016.07.20 |
Day84 안드로이드 (0) | 2016.07.18 |