검색결과 리스트
Android ContextMenu에 해당되는 글 1건
- 2011.12.16 [Android] ContextMenu
글
컨텍스트 메뉴는 뷰를 누르고 있으면 뜨는 화면이다. 예를들자면.. Select All 등과 같은 그런 화면을 본 적이 있을 것이다.
Copy, Paste 등과 같은..
이것은 최초 registerForContextMenu(View view)를 통해 등록 한 후
onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ConTextMenuInfo info) 를 통하여
그 화면 구성을 나타낸다.
물론 선택 내용에 대해서는 onContextItemSelected(MenuItem item) 을 통해서 그 이벤트를 정의 한다.
다음은 그 예제 코드이다.
main.xml
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ff0000"
android:text="Button"
android:textSize="20px"
/>
<EditText
android:id="@+id/edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="edit"
/>
java
/** Called when the activity is first created. */
Button btn;
EditText edit;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button)findViewById(R.id.btn);
edit = (EditText)findViewById(R.id.edit);
registerForContextMenu(btn);
registerForContextMenu(edit);
}
@Override
public void onCreateContextMenu(ContextMenu menu,View view, ContextMenu.ContextMenuInfo info){
super.onCreateContextMenu(menu,view,info);
if(view==btn){
menu.setHeaderTitle("Button menu");
menu.add(0,1,0,"Red");
menu.add(0,2,0,"Green");
menu.add(0,3,0,"Blue");
}
else if(view==edit){
menu.add(0,4,0,"텍스트1");
menu.add(0,5,0,"텍스트2");
}
}
@Override
public boolean onContextItemSelected(MenuItem item){
switch(item.getItemId()){
case 1:
btn.setTextColor(Color.RED);
return true;
case 2:
btn.setTextColor(Color.BLUE);
return true;
case 3:
btn.setTextColor(Color.GREEN);
return true;
case 4:
Toast.makeText(this, "1번", Toast.LENGTH_SHORT).show();
return true;
case 5:
Toast.makeText(this, "2번", Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
다음을 실행 해 보면 버튼을 누르고 있을 떄와 에디트텍스트를 누르고 있을 때 서로 다른 점을 확인 할 수가 있을 것이다.
Copy, Paste 등과 같은..
이것은 최초 registerForContextMenu(View view)를 통해 등록 한 후
onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ConTextMenuInfo info) 를 통하여
그 화면 구성을 나타낸다.
물론 선택 내용에 대해서는 onContextItemSelected(MenuItem item) 을 통해서 그 이벤트를 정의 한다.
다음은 그 예제 코드이다.
main.xml
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ff0000"
android:text="Button"
android:textSize="20px"
/>
<EditText
android:id="@+id/edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="edit"
/>
java
/** Called when the activity is first created. */
Button btn;
EditText edit;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button)findViewById(R.id.btn);
edit = (EditText)findViewById(R.id.edit);
registerForContextMenu(btn);
registerForContextMenu(edit);
}
@Override
public void onCreateContextMenu(ContextMenu menu,View view, ContextMenu.ContextMenuInfo info){
super.onCreateContextMenu(menu,view,info);
if(view==btn){
menu.setHeaderTitle("Button menu");
menu.add(0,1,0,"Red");
menu.add(0,2,0,"Green");
menu.add(0,3,0,"Blue");
}
else if(view==edit){
menu.add(0,4,0,"텍스트1");
menu.add(0,5,0,"텍스트2");
}
}
@Override
public boolean onContextItemSelected(MenuItem item){
switch(item.getItemId()){
case 1:
btn.setTextColor(Color.RED);
return true;
case 2:
btn.setTextColor(Color.BLUE);
return true;
case 3:
btn.setTextColor(Color.GREEN);
return true;
case 4:
Toast.makeText(this, "1번", Toast.LENGTH_SHORT).show();
return true;
case 5:
Toast.makeText(this, "2번", Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
다음을 실행 해 보면 버튼을 누르고 있을 떄와 에디트텍스트를 누르고 있을 때 서로 다른 점을 확인 할 수가 있을 것이다.
RECENT COMMENT