wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改。本文分享 android开发Fragment中监听onKey事件主要代码,供技术员参考学习。 项目中越来越多的用到Fragment,下面记录一下在ActionBar中监听Fragment的onKey事件。 ActionBar实现Onkey事件,判断当前的fragment是哪一个,是不是所需要的Fragment,然后在需要监听OnKey事件的Fragment中写一个静态方法,传递keycode与event事件即可。 - package info.androidhive.tabsswipe;
- import info.androidhive.tabsswipe.adapter.TabsPagerAdapter;
- import android.annotation.SuppressLint;
- import android.app.SearchManager;
- import android.content.Context;
- import android.support.v7.app.ActionBar;
- import android.support.v7.app.ActionBar.Tab;
- import android.support.v7.app.ActionBarActivity;
- import android.support.v7.widget.SearchView;
- import android.os.Bundle;
- import android.support.v4.app.Fragment;
- import android.support.v4.view.MenuItemCompat;
- import android.support.v4.view.ViewPager;
- import android.util.Log;
- import android.view.KeyEvent;
- import android.view.Menu;
- import android.view.MenuItem;
- @SuppressLint("NewApi")
- public class MainActivity extends ActionBarActivity implements
- ActionBar.TabListener {
- private ViewPager viewPager;
- private TabsPagerAdapter mAdapter;
- private ActionBar actionBar;
- private Fragment fg;
- // Tab titles
- private String[] tabs = { "TopRatedFragment", "GamesFragment", "MoviesFragment" };
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // Initilization
- viewPager = (ViewPager) findViewById(R.id.pager);
- actionBar = getSupportActionBar();
- mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
- viewPager.setOffscreenPageLimit(3);
- viewPager.setAdapter(mAdapter);
- actionBar.setHomeButtonEnabled(false);
- actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
- // Adding Tabs
- for (String tab_name : tabs) {
- actionBar.addTab(actionBar.newTab().setText(tab_name)
- .setTabListener(this));
- }
- /**
- * on swiping the viewpager make respective tab selected
- * */
- viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- public void onPageSelected(int position) {
- // on changing the page
- // make respected tab selected
- // actionBar.setSelectedNavigationItem(position);
- actionBar.selectTab(actionBar.getTabAt(position));
- mAdapter.getItem(position);
-
- }
- public void onPageScrolled(int arg0, float arg1, int arg2) {
- }
- public void onPageScrollStateChanged(int arg0) {
- }
- });
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- //
- SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
- getMenuInflater().inflate(R.menu.main, menu);
- MenuItem searchItem = menu.findItem(R.id.action_settings);
- SearchView searchview = (SearchView)MenuItemCompat.getActionView(searchItem);
- searchview.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
- return super.onCreateOptionsMenu(menu);
- }
-
-
- public void onTabReselected(Tab arg0,
- android.support.v4.app.FragmentTransaction arg1) {
- // TODO Auto-generated method stub
-
- }
- public void onTabSelected(Tab arg0,
- android.support.v4.app.FragmentTransaction arg1) {
- // TODO Auto-generated method stub
- viewPager.setCurrentItem(arg0.getPosition());
- fg = mAdapter.getItem(arg0.getPosition());
- Log.d("fg", fg+"");
- }
- public void onTabUnselected(Tab arg0,
- android.support.v4.app.FragmentTransaction arg1) {
- // TODO Auto-generated method stub
-
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- // TODO Auto-generated method stub
- Log.d("ActionBar", "OnKey事件");
- if(fg instanceof GamesFragment){
- GamesFragment.onKeyDown(keyCode, event);
- }
- return super.onKeyDown(keyCode, event);
- }
- }
复制代码
原文详情地址:http://git.oschina.net/einsqing/wemall-mobile wemall-mobile商城详情地址:http://www.koahub.com/home/product/56 wemall官网地址:http://www.wemallshop.com WeMall - 开源微商城 微信商城 商城源码 分销商城 b2b2c商城系统 
|