wemall app商城源码Fragment中监听onKey事件

来源:互联网 发布:photo picture软件 编辑:程序博客网 时间:2024/05/08 21:41

      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商城系统

0 0
原创粉丝点击