我一直在關注這個教程創建一個滑動菜單:同時使用SlidingActivityBase和SherlockFragmentActivity創建一個滑動菜單
http://www.youtube.com/watch?v=LWTYQ2g597o
而且因爲即時通訊使用大偵探,我必須從這個改變我的類聲明:
public class BaseActivity extends SlidingFragmentActivity
以下幾點:
public class RggarbActionBar extends SherlockFragmentActivity implements SlidingActivityBase
現在,當我使用getSlidingMenu()方法在我的類中保持爲空,並返回null時,我得到一個NullPointerException。
這裏是我的全班同學:
public class RggarbActionBar extends SherlockFragmentActivity implements SlidingActivityBase {
protected ListFragment listFragment;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
listFragment = new RggarbSlidingMenu();
SlidingMenu slidingMenu = getSlidingMenu();
slidingMenu.setShadowWidth(15);//outsource these
slidingMenu.setBehindOffset(60);
slidingMenu.setFadeDegree(0.35f);
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
MenuInflater inflater = getSupportMenuInflater();
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
ActionBar actionBar = getSherlock().getActionBar();
actionBar.setBackgroundDrawable(new
ColorDrawable(Color.parseColor("#680e96")));
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setHomeButtonEnabled(true);
actionBar.setIcon(R.drawable.logo_icon);
inflater.inflate(R.menu.action_bar_items, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if(itemId == android.R.id.home) {
toggle();
return true;
}
else if (itemId == R.id.abFeed) {
Intent feed = new Intent(this, Home.class);
startActivity(feed);
return true;
} else if (itemId == R.id.abNotifications) {
Intent notifications = new Intent(this, Notifications.class);
startActivity(notifications);
return true;
} else if (itemId == R.id.abAddNewItem) {
Intent addNewItem = new Intent(this, ItemAdd.class);
startActivity(addNewItem);
return true;
} else if (itemId == R.id.abSearch) {
Intent search = new Intent(this, SearchItems.class);
startActivity(search);
return true;
} else {
return onOptionsItemSelected(item); //watch out for this one. if any problems occur change to "return true"
}
}
public class BasePagerAdapter extends FragmentPagerAdapter{
private List<Fragment> mFragments = new ArrayList<Fragment>();
private ViewPager mPager;
public BasePagerAdapter(FragmentManager fm, ViewPager vp){
super(fm);
mPager = vp;
mPager.setAdapter(this);
for (int i = 0; i < 3; i++){
addTab(new RggarbSlidingMenu());
}
}
public void addTab(Fragment frag){
mFragments.add(frag);
}
@Override
public Fragment getItem(int position){
return mFragments.get(position);
}
@Override
public int getCount(){
return mFragments.size();
}
}
@Override
public void setBehindContentView(View view, LayoutParams layoutParams) {
// TODO Auto-generated method stub
}
@Override
public void setBehindContentView(View view) {
// TODO Auto-generated method stub
}
@Override
public void setBehindContentView(int layoutResID) {
// TODO Auto-generated method stub
}
@Override
public SlidingMenu getSlidingMenu() {
// TODO Auto-generated method stub
return null;
}
@Override
public void toggle() {
// TODO Auto-generated method stub
}
@Override
public void showContent() {
// TODO Auto-generated method stub
}
@Override
public void showMenu() {
// TODO Auto-generated method stub
}
@Override
public void showSecondaryMenu() {
// TODO Auto-generated method stub
}
@Override
public void setSlidingActionBarEnabled(boolean slidingActionBarEnabled) {
// TODO Auto-generated method stub
}
}
我怎麼retrurn該實例 –
有關使用該庫已經在GitHub的頁面上完全記錄。 – Kuffs
以及我已閱讀說明,仍然問這個問題,所以 –