안드로이드 앱 개발 일지, 6차
버튼을 눌렀을 겨우, 다른 activity 실행
안드로이드 스튜디오를 실행하면 기본으로 하나의 activity를 가지고 있다. 앱을 실행할 경우, 처음 보여주는 Activity는 번호만 나와있어 사용자가 어느 방향으로 측정할 지 모른다. 버튼을 하나 누르면 번호와 측정 부분을 보여줘야 한다. 이렇게 하기 위해 MainActivity에서 버튼을 하나 만들었고, 사용자가 이를 눌렀을 경우 subActivity가 실행되도록 했다. 여기에서 참조 했다.
아래는 구현한 코드이다.
public class MainActivity extends AppCompatActivity { Intent subActivity; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); subActivity = new Intent(this, LayoutActivity.class); Button BtnLayout = (Button)findViewById(R.id.Layout); BtnLayout.setOnClickListener(mLayoutListener); Button.OnClickListener mLayoutListener = new View.OnClickListener(){ @Override public void onClick(View v) { startActivity(subActivity); } }; }
subActivity라고 LayoutActivity.java로 아래와 같이 만들었다. setContentView의 layout_main은 res의 layout의 경로이다.
public class LayoutActivity extends Activity { Intent LayoutIntent; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_main); } }
layout을 아래와 같이 새로 만들어 주고, LayoutActivity에 알려 줬다.
Manifest에 등록하기
이렇게 하고 버튼을 누를 경우, 빈 화면이 보여야 되는데, 에러가 발생한다. Manifest에 아래와 같이 등록한다.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.now0930.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".LayoutActivity"> </activity> </application> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> </manifest>
사용자 바탕화면 설정하기
새로운 activity에는 바탕화면을 설정하고 싶다. 다음 사이트에서 참조 했다. 결론을 말하면, png 파일로 AndroidStudio 폴더에 넣어주면 된다. layout 설정하는 화면에 design과 text를 설정할 수 있는데, text로 다음과 같이 입력하면 된다. 설정 옵션에 방향을 변경할 수 있는데, 어떻게 하는지 몰라 그림을 90도 돌렸다.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/carsideview" android:orientation="vertical" android:weightSum="1"> </LinearLayout>
이 사진에 번호를 붙이고 싶으나, 제공하는 TextView에서는 원하는 위치로 가져갈 수 없다. 사진을 수정하여 넣어야 될듯 보인다.