Android 片段部分时间显示

Android 片段部分时间显示,android,android-fragments,Android,Android Fragments,我有一个导航抽屉,菜单中有几个片段,在第一个片段中,当在gridView中按下一个项目时,我想启动一个不同的片段,我没有收到错误,但有时片段会显示,有时它不会显示 thc调用片段是HomeFragment: opend片段是InstrumentsFragment 以下是容器布局:drawr布局: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/andr

我有一个导航抽屉,菜单中有几个片段,在第一个片段中,当在gridView中按下一个项目时,我想启动一个不同的片段,我没有收到错误,但有时片段会显示,有时它不会显示

thc调用片段是HomeFragment:

opend片段是InstrumentsFragment

以下是容器布局:drawr布局:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- Framelayout to display Fragments -->
    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <!-- Listview to display slider menu -->
    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@color/list_divider"
        android:dividerHeight="1dp"       
        android:listSelector="@drawable/list_selector"
        android:background="@color/list_background"/>
</android.support.v4.widget.DrawerLayout>
因此,从HomeFragment到InstrumentsFragment,我以这种方式调用:

final FragmentTransaction ft = getFragmentManager().beginTransaction(); 
                    ft.replace(R.id.frame_container, new InstrumentsFragment(), "InstrumentsFragment"); 
                    ft.addToBackStack(null);
                    ft.commit();
我没有错,只是有时候有用,有时候不行! 有什么问题吗

编辑:

完整代码:

包含导航抽屉的类:

public class MainOptionsActivity extends Activity 
{
    private DrawerLayout mDrawerLayout;
    private ListView mDrawerList;
    private ActionBarDrawerToggle mDrawerToggle;
    ParseUser user = ParseUser.getCurrentUser();
    // nav drawer title
    private CharSequence mDrawerTitle;
    ArrayList<String> resultCompanys = new ArrayList<String>();
    ArrayList<String> resultModels = new ArrayList<String>();
    ArrayList<String> resultPrices = new ArrayList<String>();
    ArrayList<String> resultStores = new ArrayList<String>();
    ArrayList<String> resultUrls = new ArrayList<String>();
    ArrayList<String> followedObjIds = new ArrayList<String>();
    ArrayList<String> urlsForUpdate = new ArrayList<String>();
    boolean changeInFollowedItems = false;
    String currentUrl = "";
    String[] urlsArray = {"http://www.music-","http://www.kolhamusica" , "http://www.diez.co"};
    // used to store app title
    private CharSequence mTitle;
    protected OnBackPressedListener onBackPressedListener;
    // slide menu items
    private String[] navMenuTitles;
    private TypedArray navMenuIcons;
    private ArrayList<NavDrawerItem> navDrawerItems;
    private NavDrawerListAdapter adapter;
    int locationOfCompany = 0 , fragmentIdFromIntent = -1;
    String tmpCompany = "";
    CustomAdapter followsAdapter;

    boolean doubleBackToExitPressedOnce = false;

    String urlToFetchFrom = "" ;

    ArrayList<String> gPricesAsist = new ArrayList<String>();
    ArrayList<String> afterUpdatePrices = new ArrayList<String>();
    ArrayList<String> changedPricesObjIds = new ArrayList<String>();
    ArrayList<String> ObjIdsForNotifications = new ArrayList<String>();

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    ArrayList<ParseObject> alPobjs = new ArrayList<ParseObject>();
    ParseObject pObj ;
    String urlForUpdatePrice = "" , objIdToUpdate = "";
    String finalPriceForUpdate = "";
    String currentOldPrice="";
    int location;
    Date currentDate;

    String[] months = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
    String[] monthsInNumsFormat = {"0","1","2","3","4","5","6","7","8","9","10","11"};
    boolean[] pricesWereChanged;

    String[] urlsForJsoup;
    boolean userHasFollowedItems = false;
    Document doc;
    ParseQuery<ParseObject> pq;
    Context context = this;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.drawr_layout);
        /////////////////////////////////////////////////////////////////////////

        mTitle = mDrawerTitle = getTitle();
        //////////////////////////////////////////////////////////////////////
        // load slide menu items
        navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);

        // nav drawer icons from resources
        navMenuIcons = getResources()
                .obtainTypedArray(R.array.nav_drawer_icons);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.list_slidermenu);

        navDrawerItems = new ArrayList<NavDrawerItem>();

        // adding nav drawer items to array
        // Home
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
        // Find People
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
        // Photos
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
        // Communities, Will add a counter here
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));


        // Recycle the typed array
        navMenuIcons.recycle();

        mDrawerList.setOnItemClickListener(new SlideMenuClickListener());

        // setting the nav drawer list adapter
        adapter = new NavDrawerListAdapter(getApplicationContext(),
                navDrawerItems);
        mDrawerList.setAdapter(adapter);

        // enabling action bar app icon and behaving it as toggle button
        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);

        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                R.drawable.ic_drawer, //nav menu toggle icon
                R.string.app_name, // nav drawer open - description for accessibility
                R.string.app_name // nav drawer close - description for accessibility
                ) {
            public void onDrawerClosed(View view) {
                getActionBar().setTitle(mTitle);
                // calling onPrepareOptionsMenu() to show action bar icons
                invalidateOptionsMenu();
            }

            public void onDrawerOpened(View drawerView) {
                getActionBar().setTitle(mDrawerTitle);
                // calling onPrepareOptionsMenu() to hide action bar icons
                invalidateOptionsMenu();
            }
        };
        mDrawerLayout.setDrawerListener(mDrawerToggle);

        if (savedInstanceState == null) {
            // on first time display view for first nav item
            displayView(0);
        }
        fragmentIdFromIntent = getIntent().getIntExtra("fragmentIdFromIntent", -1);
        if(fragmentIdFromIntent != -1)
        {
            displayView(fragmentIdFromIntent-1);
        }
    }

    /**
     * Slide menu item click listener
     * */
    public class SlideMenuClickListener implements
    ListView.OnItemClickListener {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            // display view for selected nav drawer item
            displayView(position);
        }

    }

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // toggle nav drawer on selecting action bar app icon/title
        if (mDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        // Handle action bar actions click
        switch (item.getItemId()) {
        default:
            return super.onOptionsItemSelected(item);
        }
    }

    /* *
     * Called when invalidateOptionsMenu() is triggered
     */
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // if nav drawer is opened, hide the action items
        boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
        return super.onPrepareOptionsMenu(menu);
    }

    /**
     * Diplaying fragment view for selected nav drawer list item
     * */
    private void displayView(int position) {
        // update the main content by replacing fragments
        Fragment fragment = null;
        switch (position) {
        case 0:
            fragment = new HomeFragment();
            break;
        case 1:
            fragment = new SecondFragment();
            break;
        case 2:
            fragment = new ThirdFragment();
            break;
        case 3:
            fragment = new ForthFragment();
            break;

        default:
            break;
        }

        if (fragment != null) {
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction()
            .replace(R.id.frame_container, fragment).commit();
            // update selected item and title, then close the drawer
            mDrawerList.setItemChecked(position, true);
            mDrawerList.setSelection(position);
            setTitle(navMenuTitles[position]);
            mDrawerLayout.closeDrawer(mDrawerList);
        } else {
            // error in creating fragment
            Log.e("MainActivity", "Error in creating fragment");
        }
    }

    @Override
    public void setTitle(CharSequence title) {
        mTitle = title;
        getActionBar().setTitle(mTitle);
    }

    /**
     * When using the ActionBarDrawerToggle, you must call it during
     * onPostCreate() and onConfigurationChanged()...
     */

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        mDrawerToggle.syncState();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Pass any configuration change to the drawer toggls
        mDrawerToggle.onConfigurationChanged(newConfig);
    }
}
public class main选项活动扩展活动
{
私人抽屉布局mDrawerLayout;
私有列表视图mDrawerList;
私有操作bardrawertoggle mDrawerToggle;
ParseUser=ParseUser.getCurrentUser();
//导航抽屉标题
私有字符序列mDrawerTitle;
ArrayList resultCompanys=新建ArrayList();
ArrayList resultModels=新建ArrayList();
ArrayList resultPrices=新的ArrayList();
ArrayList resultStores=新的ArrayList();
ArrayList resultUrls=新的ArrayList();
ArrayList followDobjids=新的ArrayList();
ArrayList urlsForUpdate=新的ArrayList();
布尔ChangeInfoAllowedItems=false;
字符串currentUrl=“”;
字符串[]urlsArray={”http://www.music-","http://www.kolhamusica" , "http://www.diez.co"};
//用于存储应用程序标题
私有字符序列mTitle;
受保护的OnBackPressedListener OnBackPressedListener;
//幻灯片菜单项
私有字符串[]navMenuTitles;
专用型雷达导航仪;
私人ArrayList NavWrites;
专用导航适配器;
int locationOfCompany=0,fragmentIdFromIntent=-1;
字符串tmpCompany=“”;
自定义适配器;
布尔值doubleBackToExitPressedOnce=false;
字符串urlToFetchFrom=“”;
ArrayList gpriceSist=新的ArrayList();
ArrayList afterUpdatePrices=新的ArrayList();
ArrayList changedPricesObjIds=新的ArrayList();
ArrayList ObjIdsForNotifications=新建ArrayList();
SimpleDataFormat sdf=新的SimpleDataFormat(“yyyy/MM/dd”);
ArrayList alPobjs=新的ArrayList();
ParseObject-pObj;
字符串urlForUpdatePrice=“”,objIdToUpdate=“”;
字符串finalPriceForUpdate=“”;
字符串currentldprice=“”;
int定位;
日期当前日期;
字符串[]个月={“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”};
字符串[]monthsinumsformat={“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”};
布尔值[]价格已更改;
字符串[]urlsForJsoup;
布尔userHasFollowedItems=false;
文件文件;
解析查询pq;
上下文=这个;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.drawr_布局);
/////////////////////////////////////////////////////////////////////////
mTitle=mDrawerTitle=getTitle();
//////////////////////////////////////////////////////////////////////
//加载幻灯片菜单项
navMenuTitles=getResources().getStringArray(R.array.nav\u抽屉\u项目);
//参考资料中的导航抽屉图标
navMenuIcons=getResources()
.obtainTypedArray(R.array.nav_drawer_图标);
mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
mDrawerList=(ListView)findViewById(R.id.list\u slidermenu);
navDrawerItems=新的ArrayList();
//将导航抽屉项添加到阵列
//家
添加(新的NavDrawerItem(navMenuTitles[0],navMenuIcons.getResourceId(0,-1));
//找人
添加(新的NavDrawerItem(navMenuTitles[1],navMenuIcons.getResourceId(1,-1));
//照片
添加(新的NavDrawerItem(navMenuTitles[2],navMenuIcons.getResourceId(2,-1));
//社区,将在此处添加一个计数器
add(新的NavDrawerItem(navMenuTitles[3],navMenuIcons.getResourceId(3,-1));
//回收类型化数组
navMenuIcons.recycle();
setOnItemClickListener(新的SlideMenuClickListener());
//设置导航抽屉列表适配器
适配器=新的NavDroperListAdapter(getApplicationContext(),
纳维特姆斯);
mDrawerList.setAdapter(适配器);
//启用操作栏应用程序图标并将其作为切换按钮
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
mDrawerToggle=新操作BarDrawerToggle(此,mDrawerLayout,
R.drawable.ic_抽屉,//导航菜单切换图标
R.string.app_name,//导航抽屉打开-可访问性说明
R.string.app_name//nav抽屉关闭-可访问性说明
) {
公共无效onDrawerClosed(视图){
getActionBar().setTitle(mTitle);
//调用onPrepareOptions菜单()以显示操作栏图标
无效操作菜单();
}
打开图纸上的公共空白(视图抽屉视图){
getActionBar().setTitle(mDrawerTitle);
//调用onPrepareOptions菜单()隐藏操作栏图标
无效操作菜单();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
如果(savedInstanceState==null){
//第一个导航项目的首次显示视图
显示视图(0);
}
fragmentIdFromIntent=getIntent().getIntExtra(“fragmentIdFromIntent”,-1);
如果(fragmentIdFromIntent!=-1)
{
显示视图(fragmentIdFromIntent-1);
}
}
/**
*幻灯片菜单项单击“侦听器”
* */
公开课幻灯片
public class MainOptionsActivity extends Activity 
{
    private DrawerLayout mDrawerLayout;
    private ListView mDrawerList;
    private ActionBarDrawerToggle mDrawerToggle;
    ParseUser user = ParseUser.getCurrentUser();
    // nav drawer title
    private CharSequence mDrawerTitle;
    ArrayList<String> resultCompanys = new ArrayList<String>();
    ArrayList<String> resultModels = new ArrayList<String>();
    ArrayList<String> resultPrices = new ArrayList<String>();
    ArrayList<String> resultStores = new ArrayList<String>();
    ArrayList<String> resultUrls = new ArrayList<String>();
    ArrayList<String> followedObjIds = new ArrayList<String>();
    ArrayList<String> urlsForUpdate = new ArrayList<String>();
    boolean changeInFollowedItems = false;
    String currentUrl = "";
    String[] urlsArray = {"http://www.music-","http://www.kolhamusica" , "http://www.diez.co"};
    // used to store app title
    private CharSequence mTitle;
    protected OnBackPressedListener onBackPressedListener;
    // slide menu items
    private String[] navMenuTitles;
    private TypedArray navMenuIcons;
    private ArrayList<NavDrawerItem> navDrawerItems;
    private NavDrawerListAdapter adapter;
    int locationOfCompany = 0 , fragmentIdFromIntent = -1;
    String tmpCompany = "";
    CustomAdapter followsAdapter;

    boolean doubleBackToExitPressedOnce = false;

    String urlToFetchFrom = "" ;

    ArrayList<String> gPricesAsist = new ArrayList<String>();
    ArrayList<String> afterUpdatePrices = new ArrayList<String>();
    ArrayList<String> changedPricesObjIds = new ArrayList<String>();
    ArrayList<String> ObjIdsForNotifications = new ArrayList<String>();

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    ArrayList<ParseObject> alPobjs = new ArrayList<ParseObject>();
    ParseObject pObj ;
    String urlForUpdatePrice = "" , objIdToUpdate = "";
    String finalPriceForUpdate = "";
    String currentOldPrice="";
    int location;
    Date currentDate;

    String[] months = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
    String[] monthsInNumsFormat = {"0","1","2","3","4","5","6","7","8","9","10","11"};
    boolean[] pricesWereChanged;

    String[] urlsForJsoup;
    boolean userHasFollowedItems = false;
    Document doc;
    ParseQuery<ParseObject> pq;
    Context context = this;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.drawr_layout);
        /////////////////////////////////////////////////////////////////////////

        mTitle = mDrawerTitle = getTitle();
        //////////////////////////////////////////////////////////////////////
        // load slide menu items
        navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);

        // nav drawer icons from resources
        navMenuIcons = getResources()
                .obtainTypedArray(R.array.nav_drawer_icons);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.list_slidermenu);

        navDrawerItems = new ArrayList<NavDrawerItem>();

        // adding nav drawer items to array
        // Home
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
        // Find People
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
        // Photos
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
        // Communities, Will add a counter here
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));


        // Recycle the typed array
        navMenuIcons.recycle();

        mDrawerList.setOnItemClickListener(new SlideMenuClickListener());

        // setting the nav drawer list adapter
        adapter = new NavDrawerListAdapter(getApplicationContext(),
                navDrawerItems);
        mDrawerList.setAdapter(adapter);

        // enabling action bar app icon and behaving it as toggle button
        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);

        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                R.drawable.ic_drawer, //nav menu toggle icon
                R.string.app_name, // nav drawer open - description for accessibility
                R.string.app_name // nav drawer close - description for accessibility
                ) {
            public void onDrawerClosed(View view) {
                getActionBar().setTitle(mTitle);
                // calling onPrepareOptionsMenu() to show action bar icons
                invalidateOptionsMenu();
            }

            public void onDrawerOpened(View drawerView) {
                getActionBar().setTitle(mDrawerTitle);
                // calling onPrepareOptionsMenu() to hide action bar icons
                invalidateOptionsMenu();
            }
        };
        mDrawerLayout.setDrawerListener(mDrawerToggle);

        if (savedInstanceState == null) {
            // on first time display view for first nav item
            displayView(0);
        }
        fragmentIdFromIntent = getIntent().getIntExtra("fragmentIdFromIntent", -1);
        if(fragmentIdFromIntent != -1)
        {
            displayView(fragmentIdFromIntent-1);
        }
    }

    /**
     * Slide menu item click listener
     * */
    public class SlideMenuClickListener implements
    ListView.OnItemClickListener {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            // display view for selected nav drawer item
            displayView(position);
        }

    }

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // toggle nav drawer on selecting action bar app icon/title
        if (mDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        // Handle action bar actions click
        switch (item.getItemId()) {
        default:
            return super.onOptionsItemSelected(item);
        }
    }

    /* *
     * Called when invalidateOptionsMenu() is triggered
     */
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // if nav drawer is opened, hide the action items
        boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
        return super.onPrepareOptionsMenu(menu);
    }

    /**
     * Diplaying fragment view for selected nav drawer list item
     * */
    private void displayView(int position) {
        // update the main content by replacing fragments
        Fragment fragment = null;
        switch (position) {
        case 0:
            fragment = new HomeFragment();
            break;
        case 1:
            fragment = new SecondFragment();
            break;
        case 2:
            fragment = new ThirdFragment();
            break;
        case 3:
            fragment = new ForthFragment();
            break;

        default:
            break;
        }

        if (fragment != null) {
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction()
            .replace(R.id.frame_container, fragment).commit();
            // update selected item and title, then close the drawer
            mDrawerList.setItemChecked(position, true);
            mDrawerList.setSelection(position);
            setTitle(navMenuTitles[position]);
            mDrawerLayout.closeDrawer(mDrawerList);
        } else {
            // error in creating fragment
            Log.e("MainActivity", "Error in creating fragment");
        }
    }

    @Override
    public void setTitle(CharSequence title) {
        mTitle = title;
        getActionBar().setTitle(mTitle);
    }

    /**
     * When using the ActionBarDrawerToggle, you must call it during
     * onPostCreate() and onConfigurationChanged()...
     */

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        mDrawerToggle.syncState();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Pass any configuration change to the drawer toggls
        mDrawerToggle.onConfigurationChanged(newConfig);
    }
}
public class HomeFragment extends Fragment 
{
    ArrayList<String> CompanyResults = new ArrayList<String>();
    ArrayList<String> ModelsResults = new ArrayList<String>();
    ArrayList<String> PricesResults = new ArrayList<String>();
    ArrayList<String> urlForImgResults = new ArrayList<String>();
    ArrayList<String> storeResults = new ArrayList<String>();
    String[] types = {"Instruments"};
    int[] imgIds = {R.drawable.instruments_small_square_2};
    ArrayList<HomeFragGridItem> items = new ArrayList<HomeFragGridItem>();
    ArrayList<GridItem> gItems = new ArrayList<GridItem>();
    Context context;
    GridView homeGv;
    CustomAdapter gvAdapter;
    HomeFragmentGridViewAdapter hgvAdapter;
    ProgressBar pb;
    boolean doubleBackToExitPressedOnce = false;
    FragmentsComunicator fComunicator;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) 
    {

        View rootView = inflater.inflate(R.layout.fragment_home, container, false);
        context = getActivity();
        Parse.initialize(context, "123456789", "123456789");
        homeGv = (GridView)rootView.findViewById(R.id.homeFragGridView);
        //pd = ProgressDialog.show(getActivity(), null, "loading...");
        pb=  (ProgressBar)rootView.findViewById(R.id.progressBar1);
        pb.setVisibility(View.VISIBLE);
        Log.i("WhicFragment?", "HOME FRAGMENT");
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.small_instruments);
        GridViewCustomAdapter gvAdapter = new GridViewCustomAdapter(context, R.layout.grid_view_item, gItems);
        gItems.add(new GridItem("Instruments", "289 items",bitmap));
        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.small_smartphones);
        gItems.add(new GridItem("SmartPhones", "coming soon..",bitmap));
        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.small_cameras);
        gItems.add(new GridItem("Cameras","coming soon..",bitmap));
        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.small_fridges);
        gItems.add(new GridItem("Fridges", "coming soon..",bitmap));
        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.small_laptops);
        gItems.add(new GridItem("Laptops", "coming soon..",bitmap));


        homeGv.setAdapter(gvAdapter);
        gvAdapter.notifyDataSetChanged();
        pb.setVisibility(View.GONE);

        homeGv.setOnItemClickListener(new OnItemClickListener() 
        {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) 
            {
                if(position == 0)
                {
                    //frame_container2  
                    //                  Intent intent = new Intent(getActivity(),InstrumentsActivity.class);
                    //                  startActivity(intent);
                    final FragmentTransaction ft = getFragmentManager().beginTransaction(); 
                    ft.add(R.id.frame_container, new InstrumentsFragment(), "InstrumentsFragment"); 
                    //ft.addToBackStack(null);
                    ft.commit(); 
                }

            }

        });
        return rootView;

    }

}
public class InstrumentsFragment  extends Fragment
{
    CustomAdapter gvAdapter;
    HomeFragmentGridViewAdapter hgvAdapter;
    ProgressBar pb;
    GridView homeGv;
    ArrayList<HomeFragGridItem> items = new ArrayList<HomeFragGridItem>();
    ArrayList<String> CompanyResults = new ArrayList<String>();
    ArrayList<String> ModelsResults = new ArrayList<String>();
    ArrayList<String> PricesResults = new ArrayList<String>();
    ArrayList<String> urlForImgResults = new ArrayList<String>();
    ArrayList<String> storeResults = new ArrayList<String>();
    ArrayList<String> resultIds = new ArrayList<String>();

    Context context;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) 
    {
        View rootView = inflater.inflate(R.layout.instrumnets_frag_layout, container,false);
        context = getActivity();
        Parse.initialize(context, "123456789", "123456789");
        homeGv = (GridView)rootView.findViewById(R.id.instrumentsFragGV);
        //pd = ProgressDialog.show(getActivity(), null, "loading...");
        pb=  (ProgressBar)rootView.findViewById(R.id.instrumentsPb);
        pb.setVisibility(View.VISIBLE);
        Log.i("WhicFragment?", "INSTRUMENTS FRAGMENT");
        container.removeAllViews();
        hgvAdapter = new HomeFragmentGridViewAdapter(getActivity(),R.layout.home_frag_gview_item_layout,items);
        homeGv.setAdapter(hgvAdapter);

        ParseQuery<ParseObject> pq = new ParseQuery<ParseObject>("ClassicGuitars");
        pq.whereExists("Type");
        pq.setLimit(1000);
        List<ParseObject> pObjs = null;
        try 
        {
            pObjs = pq.find();
        } 
        catch (ParseException e) 
        {
            e.printStackTrace();
        } catch (com.parse.ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if(pObjs != null)
        {
            Log.i("parse_results", "pares object list in grid view is NOT null");

            for (ParseObject parseObject : pObjs) 
            {
                CompanyResults.add(parseObject.getString("InstrumentCompany"));
                ModelsResults.add(parseObject.getString("InstrumentModel"));
                PricesResults.add(parseObject.getString("LastUpdatedPrice"));
                urlForImgResults.add(parseObject.getString("UrlForImg"));
                storeResults.add(parseObject.getString("InstrumentUrl"));
                resultIds.add(parseObject.getObjectId());
            }
        }
        BgWork b1 = new BgWork();
        b1.execute();

        hgvAdapter.notifyDataSetChanged();
        pb.setVisibility(View.GONE);
        homeGv.setOnItemClickListener(new OnItemClickListener() 
        {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) 
            {
                Intent offersInent  = new Intent (getActivity(), Offers.class);
                offersInent.putExtra("actvSelection",
                        CompanyResults.get(position).toString()+" "+ModelsResults.get(position).toString());
                offersInent.putStringArrayListExtra("companysArray", CompanyResults);
                offersInent.putStringArrayListExtra("modelsArray", ModelsResults);
                offersInent.putStringArrayListExtra("pricesArray", PricesResults);
                offersInent.putStringArrayListExtra("companysUrls", storeResults);
                offersInent.putStringArrayListExtra("imgUrls", urlForImgResults);
                offersInent.putStringArrayListExtra("ids", resultIds);

                startActivity(offersInent);

            }

        });
        return rootView;
    }
    @Override
    public void onResume() 
    {
        super.onResume();

        getView().setFocusableInTouchMode(true);
        getView().requestFocus();
        getView().setOnKeyListener(new View.OnKeyListener() 
        {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) 
            {

                if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK)
                {
                    Intent intent = new Intent(getActivity(),MainOptionsActivity.class);
                    startActivity(intent);
                    getActivity().finish();
                    return true;
                }
                return false;
            }
        });
    }
    private class BgWork extends AsyncTask<Void, Void, Void>
    {
        @Override
        protected Void doInBackground(Void... params) 
        {
            for (int  i = 0 ; i < CompanyResults.size() ; i ++)
            {
                HomeFragGridItem hgItem = new HomeFragGridItem(urlForImgResults.get(i).toString(),
                        CompanyResults.get(i).toString(),
                        ModelsResults.get(i).toString(),
                        PricesResults.get(i).toString());
                items.add(hgItem);
            }
            return null;
        }
    }
}
public class HomeFragmentGridViewAdapter extends  ArrayAdapter<HomeFragGridItem>
{
    ArrayList<String> companys = new ArrayList<String>();   
    ArrayList<String> models = new ArrayList<String>();
    ArrayList<String> prices = new ArrayList<String>();
    ArrayList<String> stores = new ArrayList<String>();
    ArrayList<String> urls = new ArrayList<String>();
    private int layoutResourceId;
    private ArrayList<HomeFragGridItem> mGridData = new ArrayList<HomeFragGridItem>();

    Context context;
    String url =""
    private static LayoutInflater inflater=null;

    public HomeFragmentGridViewAdapter(Context context,int layoutResourceId, ArrayList<HomeFragGridItem> mGridData) 
    {

        super(context, layoutResourceId, mGridData);
        this.context = context;
        this.layoutResourceId = layoutResourceId;
        this.mGridData = mGridData; 
    }




    public void setGridData(ArrayList<HomeFragGridItem> mGridData)
    {
        this.mGridData = mGridData;
        notifyDataSetChanged();
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) 
    {
        View row = convertView;
        ViewHolder holder;
        if(row == null)
        {
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            row = inflater.inflate(layoutResourceId, parent, false);
            holder = new ViewHolder();

            holder.guitarCompanyTv=(TextView) row.findViewById(R.id.gridViewItemCompanyTv);
            holder.guitarModelTv=(TextView) row.findViewById(R.id.gridViewItemModelTv);
            holder.guitarImg=(ImageView) row.findViewById(R.id.gridViewItemIv); 
            holder.guitarPriceTv=(TextView) row.findViewById(R.id.gridViewItemPriceTv);
            row.setTag(holder);

        }
        else
        {
            holder = (ViewHolder) row.getTag();
        }
        HomeFragGridItem item = mGridData.get(position);
        holder.guitarCompanyTv.setText(item.getCompany());
        holder.guitarModelTv.setText(item.getMoedl());
        holder.guitarPriceTv.setText(item.getPrice());
        //Log.i("parse_results", "*** 2 **"+(urls.get(position)));
        Picasso.with(context).load(item.getImage()).resize(140, 190).centerCrop().into(holder.guitarImg);       

        return row;
    }
    public class ViewHolder
    {
        TextView guitarCompanyTv;
        TextView guitarModelTv;
        TextView guitarPriceTv;
        ImageView guitarImg;
    }

}