마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

프래그먼트에서 액션바 버튼 에관해서 ..질문

+2 추천
package com.example.allshare;

import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends FragmentActivity implements OnClickListener {
	ViewPager mViewPager;
	Button page1Btn, page2Btn, page3Btn;

	private int NUM_PAGES = 3;
	public final static int FRAGMENT_PAGE1 = 0;
	public final static int FRAGMENT_PAGE2 = 1;
	public final static int FRAGMENT_PAGE3 = 2;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		ActionBar bar = getActionBar();
		bar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP
				| ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_USE_LOGO
				| ActionBar.DISPLAY_SHOW_TITLE);

		mViewPager = (ViewPager) findViewById(R.id.pager);
		mViewPager.setAdapter(new PagerAdapter(getSupportFragmentManager()));
		mViewPager.setCurrentItem(FRAGMENT_PAGE1);

		page1Btn = (Button) findViewById(R.id.Page1Btn);
		page1Btn.setOnClickListener(this);
		page2Btn = (Button) findViewById(R.id.Page2Btn);
		page2Btn.setOnClickListener(this);
		page3Btn = (Button) findViewById(R.id.Page3Btn);
		page3Btn.setOnClickListener(this);

	}

	private class PagerAdapter extends FragmentPagerAdapter {

		public PagerAdapter(android.support.v4.app.FragmentManager fm) {
			super(fm);
		}

		@Override
		public Fragment getItem(int position) {
			switch (position) {
			case 0:
				return new ListActivity();
			case 1:
				return new ShareActivity();
			case 2:
				return new OptionActivity();
			default:
				return null;
			}
		}

		@Override
		public int getCount() {
			return NUM_PAGES;
		}
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.Page1Btn:
			mViewPager.setCurrentItem(FRAGMENT_PAGE1);
			break;
		case R.id.Page2Btn:
			mViewPager.setCurrentItem(FRAGMENT_PAGE2);
			break;
		case R.id.Page3Btn:
			mViewPager.setCurrentItem(FRAGMENT_PAGE3);
			break;
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		//getMenuInflater().inflate(R.menu.activity_actions, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(android.view.MenuItem item) {
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		switch (item.getItemId()) {
		case android.R.id.home:
			// NavUtils.navigateUpFromSameTask(this); 최상위 엑티비티로 ㄱ
			finish();
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}

 

지금 제가 하려는게 뷰페이저에서 각화면에 필요한 액션바 버튼을 넣을려고하는데

위의 코드에서 빨간글씨로된부분을 입력해실행하면 액션바버튼이뜨는데

밑의코드에서는 똑같이해도 아무것도 안나오네요

왜그런지알려주실분있ㄴ요 ㅠㅠㅠ

package com.example.allshare;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.LinearLayout;

public class ListActivity extends Fragment {
	EditText edt1;
	Context mContext;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		LinearLayout layout = (LinearLayout) inflater.inflate(
				R.layout.activity_list, container, false);

		edt1 = (EditText) layout.findViewById(R.id.edt1);
		edt1.setInputType(0);
		edt1.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				edt1.setInputType(1);
				InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
				mgr.showSoftInput(edt1, InputMethodManager.SHOW_IMPLICIT);
			}

			private InputMethodManager getSystemService(
					String inputMethodService) {
				return null;
			}
		});
		return layout;
	}

	public boolean onCreateOptionsMenu(Menu menu) {
	    getActivity().getMenuInflater().inflate(R.menu.activity_actions, menu);
	    return true;
	}
	
	public boolean onOptionsItemSelected(android.view.MenuItem item, Menu menu) {
		switch (item.getItemId()) {
		case R.id.action_search:
			return true;
		case R.id.action_settings:
			return true;
		default:
			return super.onOptionsItemSelected(item);
		}
	}
}
<?xml version="1.0" encoding="UTF-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:showAsAction="always"
        android:title="@string/search"/>
    <item
        android:id="@+id/action_settings"
        android:showAsAction="never"
        android:title="@string/action_settings"/>

</menu>

 

익명사용자 님이 2014년 7월 18일 질문

1개의 답변

0 추천

첫번째 소스에는

ActionBar bar = getActionBar();
        bar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP
                | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_USE_LOGO
                | ActionBar.DISPLAY_SHOW_TITLE);

이런식으로 actionbar 설정하는 소스가 있지만 두번째 소스에는 저부분이 없죠...

익명사용자 님이 2014년 7월 18일 답변
...