티스토리 뷰
액션바와 탭 사용하기
1 | 액션바 자체가 상단에 있으면서 기능이 다양해 졌다. (툴바의 기능도 하고 있다) | cs |
안드로이드 메뉴
1 2 3 4 | -[메뉴]버튼은 안드로이드가 아이폰과 다른 특징을 보여주는것들 중의 하나 -메뉴 버튼을 누르면 숨어 있던 메뉴가 보이게 되는데, 이 메뉴를 어플리케이션에서 구현 할 때는 옵션 메뉴(Option Menu)라고 부른다. -옵션 메뉴를 비롯한 안드로이드에서 제공하는 메뉴는 크게 두 가지임. | cs |
옵션 메뉴
컨텍스트 메뉴
1 2 3 4 | 1. 하드웨어 [메뉴] 버튼을 눌렀을 때 나타나는 메뉴로 각각의 화면마다 설정된 주요 메뉴 2. 옵션 메뉴는 최대 6개 까지의 메뉴 아이템을 포함 할 수 있으며, 그 이상의 메뉴 아이템을 추가하면 "more" 라는 메뉴 아이템으로 표시 된다. | cs |
1 2 3 | - 화면을 길게 누르면 메뉴로 텍스트뷰의 편집 상태를 바꾸거나 할 때 사용하는 메뉴임 - 뷰에 설정하여 나타나게 할 수 있음(팝업창으로 나타나낸 화면) | cs |
Example_OptionMenu 프로젝트 생성
1. 우리는 메뉴를 별도의 xml로 정의 할것이다.
res-> new -> android resource directory (menu 라는 폴더를 생성 할 것이다)
2. menu -> new resource file (file name : menu_main.xml)
메뉴 태그가 최상위 태그로 되있는것을 볼 수 있다.
3. menu item 끌어다가 추가 text탭에서 속성 추가 (item)
4. drawble 폴더에다가 menu 아이콘을 넣는다.
5. 이제 Main.java로 와서 generate-> onCreateOptionMenu() 를 오버라이드 한다.
6. onOptionItemSelected() 또한 오버라이드
7. 버튼 클릭시 토스트 메시지 띄우기
8. 액션바 영역이 우리가 추가 한것이 아닌데 처음부터 항상 보인다.(res -> values ->style.xml)을 보면
AppTheme이 있는데, 이 다크 액션바를 바로 갖다 쓰겠다라는것이다. -> 이것은 메니페스트에서 설정을 해놓은 것을 볼수 있다.
1234567891011 <resources><!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item></style></resources>cs
123456789101112131415161718192021 <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.example_optionmenu"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>cs
9. 우리가 style.xml을 noActionbar 라고도 바꿔도 액션바가 사라진것을 볼 수 있을것이다. 결국 우리가 style.xml파일을 수정하면 바뀌게 될것이다.
10. onCreate 함수로 가서 getSupportActionBar() 를 받아오자.
11. ActionBar 라는것에 hide() 메소드를 해보면 액션바가 사라진것을 알 수 있다.
123 ActionBar abar = getSupportActionBar();abar.hide();cs
12. 이제 액션바에다가 기본 메뉴를 넣고 아이콘처럼 보이게 만들어 주는방법 말고, 아예 거기에 레이아웃을 넣어 보도록 해보자. 특정위치에 넣기 위한 레이아웃을 만들 수 있다
layout -> new -> resource file(name : search_layout.xml) 파일을 생성 한다
13. menu_main.xml 파일 수정 해본다
14. 우리는 search_layout.xml 파일을 menu_search 대신에 넣어 버릴것이다
그러면 화면은 새로고침 아이콘 - 검색 ______ - 설정 이 액션바에 나타날 것이다.
<MainActivity.java>
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 package com.example.example_optionmenu;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.Menu;import android.view.MenuItem;import android.widget.Toast;import static com.example.example_optionmenu.R.layout.activity_main;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(activity_main);//ActionBar abar = getSupportActionBar();//abar.hide();}// menu xml 파일을 가져오기위한 메소드@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.menu_main, menu);return true;}// 이제는 메뉴가 만들어진것들이 동작하게 만들 것이다.// override@Overridepublic boolean onOptionsItemSelected(MenuItem item) {int curId = item.getItemId();switch (curId) {case R.id.menu_refresh:Toast.makeText(this, "새로 고침메뉴 클릭됨", Toast.LENGTH_LONG).show();break;case R.id.menu_search:Toast.makeText(this, "검색 메뉴 클릭됨", Toast.LENGTH_LONG).show();break;case R.id.menu_settings:Toast.makeText(this, "설정 메뉴 클릭됨", Toast.LENGTH_LONG).show();break;default:break;}return super.onOptionsItemSelected(item);}}cs
<activity_main.xml>
123456789101112131415161718 <?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.example_optionmenu.MainActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /></android.support.constraint.ConstraintLayout>cs
<search_layout.xml>
123456789101112131415161718192021 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="검색"android:textSize="20dp"android:textColor="#ffad8745"/><EditTextandroid:id="@+id/editText"android:layout_width="100dp"android:layout_height="wrap_content"android:layout_margin="4dp"/></LinearLayout>cs
- <실행 결과>
'Android' 카테고리의 다른 글
[Android] SQLite 정의 및 회원가입 예제 (2) | 2017.11.15 |
---|---|
[Android] 액션바를 탭과 함께 보여 주기 예제 (0) | 2017.09.25 |
[Android] Viewer 만들기(뷰어만들기) (0) | 2017.09.24 |
[Android]프래그먼트 (Fragment) (4) | 2017.09.24 |
[Android] 페이지 슬라이딩 (0) | 2017.09.24 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 머신러닝
- programming
- 백준알고리즘
- MVC
- 텐서플로우
- 개발하는 관광이
- 스프링
- node.js
- 리버싱
- Controller
- Algorigm
- 감자코딩
- 학교
- 복습
- Spring
- 안드로이드
- 알고리즘
- 백준
- C langauge
- node
- 노드
- 코드엔진
- 프로그래밍
- C언어
- 감자개발자
- TensorFlow
- db
- Android
- 초보자를 위한 C언어 300제
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함