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商城系统
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31373291/viewspace-2129082/
,如需转载,请注明出处,否则将追究法律责任。