Stack Exchange
Unable to destroy activty after coming back from tabs activity to other activity
Hi i have two activities one is normal activity and other one contains two tabs,which are fragments.when came back from tabs containing activity to normal activity app is crashing with following stack trace.
unable to destroy activity android java.lang.IllegalArgumentException: parameter must be a descendant of this view

this is my normal activity code (ListitemsData is with me)
package com.dev.retailer;

import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.AppBarLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.Toast;

import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.dev.adapter.GridViewofferadapter;
import com.dev.adapter.ProductListAdapter;
import com.dev.database.Repo;
import com.dev.fragment.QuizFragment;
import com.dev.model.ListDetails;
import com.dev.model.OpportunityPhotos;
import com.dev.model.OpportunityTable;
import com.dev.model.VendorAddressTable;
import com.dev.model.VendorTable;
import com.dev.model.offer_category_type;
import com.dev.rprtgnet.CategorySelectionActivity;
import com.dev.rprtgnet.R;
import com.dev.rprtgnet.SignInActivity;
import com.dev.sharedpreferences.SessionManager;
import com.dev.volley.AppController;
import com.facebook.login.LoginManager;
import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.ResultCallback;
import com.google.android.gms.common.api.Status;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicHeader;
import org.apache.http.protocol.HTTP;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
import java.util.concurrent.CopyOnWriteArrayList;

public class RetailerOfferViewPage extends AppCompatActivity implements OnItemClickListener
         {

    RecyclerView Viewoffergrid;
    RecyclerView lstview;
    public static CopyOnWriteArrayList<ListDetails> ListItemsData;
    protected Repo repoObject;
    private EditText searchedit;
    private SessionManager session;
    private ProductListAdapter mProductListAdapter;
    private RetailerOfferViewPage context;
    GridViewofferadapter customAdapter;
    int pendingRequests = 0;
    private  GoogleApiClient mGoogleApiClient;


    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(com.dev.rprtgnet.R.layout.retailer_offer_viewpage);

        context = this;


        this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        final EditText searchfilter = (EditText) findViewById(R.id.searchfilter);
        final ImageView cancel = (ImageView) findViewById(R.id.cancel);
        final ImageView gridview = (ImageView) findViewById(com.dev.rprtgnet.R.id.gridview);
        final ImageView listview = (ImageView) findViewById(com.dev.rprtgnet.R.id.listview);


        /*mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(Plus.API)
                .addScope(Plus.SCOPE_PLUS_LOGIN).build();*/

        cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                searchfilter.setText("");
            }
        });


        searchfilter.addTextChangedListener(new TextWatcher() {

            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub
                String text = searchfilter.getText().toString().toLowerCase(Locale.getDefault());


                if(gridview.getVisibility() == View.VISIBLE)
                {
                    if(mProductListAdapter != null) {
                        mProductListAdapter.filter(text);
                    }
                }
                else if(listview.getVisibility() == View.VISIBLE)
                {
                    customAdapter.filter(text);
                }
            }

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1,
                                          int arg2, int arg3) {
                // TODO Auto-generated method stub
            }

            @Override
            public void onTextChanged(CharSequence arg0, int arg1, int arg2,
                                      int arg3) {
                // TODO Auto-generated method stub
            }
        });

        if(mProductListAdapter != null)
        {
            mProductListAdapter.notifyDataSetChanged();
        }

        Button logout = (Button) findViewById(com.dev.rprtgnet.R.id.Logoutbtn);

        lstview = (RecyclerView) findViewById(com.dev.rprtgnet.R.id.ResList);

        LinearLayoutManager mLayoutManager = new LinearLayoutManager(this);
        lstview.setLayoutManager(mLayoutManager);

        if (logout != null) {
            logout.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    LogoutApp();
                }
            });
        }

        ImageButton back = (ImageButton) findViewById(com.dev.rprtgnet.R.id.back);

        if (back != null) {
            back.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View view) {
                    onBackPressed();
                }
            });
        }

        Button searchbtn = (Button) findViewById(com.dev.rprtgnet.R.id.searchbtn);
        searchedit = (EditText) findViewById(com.dev.rprtgnet.R.id.searchbox);
        session = SessionManager.getInstance(getBaseContext());



        assert listview != null;
        listview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                listview.setVisibility(View.GONE);
                if (gridview != null) {
                    gridview.setVisibility(View.VISIBLE);
                }
                lstview.setVisibility(View.VISIBLE);
                Viewoffergrid.setVisibility(View.GONE);
                lstview = (RecyclerView) findViewById(com.dev.rprtgnet.R.id.ResList);
                LinearLayoutManager mLayoutManager = new LinearLayoutManager(context);
                lstview.setLayoutManager(mLayoutManager);
                mProductListAdapter = new ProductListAdapter(context,
                        mProductListAdapter, lstview , ListItemsData, "VenderList");
                lstview.setAdapter(mProductListAdapter);
                mProductListAdapter.notifyDataSetChanged();
            }
        });


        if (gridview != null) {
            gridview.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View arg0) {
                    gridview.setVisibility(View.GONE);
                    listview.setVisibility(View.VISIBLE);
                    Viewoffergrid.setVisibility(View.VISIBLE);
                    lstview.setVisibility(View.GONE);
                    Viewoffergrid = (RecyclerView) findViewById(com.dev.rprtgnet.R.id.offersgridview);
                     customAdapter = new GridViewofferadapter(context, ListItemsData);
                    Viewoffergrid.setAdapter(customAdapter);
                    customAdapter.notifyDataSetChanged();
                }
            });
        }



        Viewoffergrid = (RecyclerView) findViewById(com.dev.rprtgnet.R.id.offersgridview);


        GetOpportunityList();

        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
    }





    private boolean LogoutApp() {
        try {
            AlertDialog.Builder alertDialog = new AlertDialog.Builder(
                    RetailerOfferViewPage.this);
            alertDialog.setTitle("Logout Application?");
            alertDialog
                    .setMessage("Are you sure you want to Logout from the application?");
            alertDialog.setIcon(com.dev.rprtgnet.R.drawable.ic_logout);
            alertDialog.setPositiveButton("Yes",
                    new DialogInterface.OnClickListener() {
                        @SuppressLint("InlinedApi")
                        public void onClick(DialogInterface dialog, int which) {
                            //CategorySelectionActivity.LoginLogoutTag = "Login";
                            session.createRegUserName("User Name");
                            CategorySelectionActivity.User_Name.setText( session.getRegUserName());
                            QuizFragment.Emailaddress = null;
                            QuizFragment.mobileno = null;
                            QuizFragment.password = null;
                            QuizFragment.Photoname = null;
                            QuizFragment.UserRegId=null;
                            session.createLoginSession(getString(com.dev.rprtgnet.R.string.main_RETAILER));
                            session.createEmail(QuizFragment.Emailaddress);
                            session.createMobileNo(QuizFragment.mobileno);
                            session.createPassword(QuizFragment.password);
                            session.createUserRegisterID(null);
                            session.createPhotoname(QuizFragment.Photoname);

                            session.createLoginType(null);

                           /* Intent intent = new Intent(context, CategorySelectionActivity.class);
                            startActivity(intent);*/

                            /*if (AccessToken.getCurrentAccessToken() == null) {
                                Toast.makeText(getApplicationContext(),"Logged Out",Toast.LENGTH_SHORT).show();
                                Intent i=new Intent(getApplicationContext(),CategorySelectionActivity.class);
                                startActivity(i);

                                return; // already logged out

                            }

                            new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest
                                    .Callback() {
                                @Override
                                public void onCompleted(GraphResponse graphResponse) {

                                    LoginManager.getInstance().logOut();

                                }
                            }).executeAsync();*/

                            Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
                                    new ResultCallback<Status>() {
                                        @Override
                                        public void onResult(Status status) {
                                            // ...
                                            LoginManager.getInstance().logOut();
                                            Toast.makeText(getApplicationContext(),"Logged Out",Toast.LENGTH_SHORT).show();
                                            Intent i=new Intent(getApplicationContext(),CategorySelectionActivity.class);
                                            startActivity(i);
                                        }
                                    });


                            /*Auth.GoogleSignInApi.signOut(QuizFragment.mGoogleApiClient).setResultCallback(
                                    new ResultCallback<Status>() {
                                        @Override
                                        public void onResult(Status status) {

                                        }
                                    });*/




                        }
                    });
            alertDialog.setNegativeButton("No",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
            alertDialog.show();
            return true;
        } catch (Exception e) {
            e.printStackTrace();

            return false;
        }
    }


    private void GetOpportunityList() {


                    mProductListAdapter = new ProductListAdapter(this,
                            mProductListAdapter, lstview , ListItemsData, "VenderList");
                    lstview.setAdapter(mProductListAdapter);
                    mProductListAdapter.notifyDataSetChanged();


                }

            }
        } catch (Exception e) {
            e.printStackTrace();

        }
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
                            long id) {

        ListDetails product = ListItemsData
                .get(position);



    }



    @Override
    public void onPause() {
        Log.e("DEBUG", "OnPause of RetailerOfferViewPage");
        super.onPause();
    }

    @Override
    public void onStart() {
        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestEmail()
                .build();
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
                .build();
        mGoogleApiClient.connect();
        super.onStart();

    }

    @Override
    public void onStop() {
        super.onStop();

    }

}

and this is my tabs activity
package com.dev.tabsswipe;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;

import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.dev.model.UserBlockList;
import com.dev.rprtgnet.R;
import com.dev.rprtgnet.SignInActivity;
import com.dev.volley.AppController;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import java.util.concurrent.CopyOnWriteArrayList;

public class SimpleTabsActivity extends AppCompatActivity {

    public static int gridOppId;

    final int[] ICONS = new int[]{
            R.drawable.userw,R.drawable.userw,
    };
    ViewPager viewPager;
    CopyOnWriteArrayList<UserBlockList> ArrayList;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test2);

       // finish();

        ImageButton back = (ImageButton) findViewById(com.dev.rprtgnet.R.id.back);

        if (back != null) {
            back.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View view) {
                    onBackPressed();
                }
            });
        }


        /*Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);*/

        //if (enableBackNavigation) {
           // toolbar.setNavigationIcon(R.drawable.ic_back);
        //assert toolbar != null;
        /*toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    try {
                        onBackPressed();
                    }
                    catch (Exception e)
                    {
                        e.printStackTrace();
                    }

                }
            });*/
       // }

        Intent mIntent = getIntent();
        if (mIntent != null) {
            gridOppId = mIntent.getIntExtra("OppId", 0);
        }


        GetReservedoffersList();
       // getSupportActionBar().setDisplayHomeAsUpEnabled(true);

         viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);


    }







    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new DetailsReservation(), "Details");
        adapter.addFragment(new ReserveUserListTabs(), "ReserveList");


        viewPager.setAdapter(adapter);
    }

    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

        @Override
        public int getCount() {
            return mFragmentList.size();
        }

        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }
}

and i am calling this tabs activity from adapter clas as
holder.parentcv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (UserType.equals("VenderList")) {
                    GridViewofferadapter.gridClickpos = position;
                    ListDetails product = worldpopulationlist.get(position);
                    int oppId = Integer.parseInt(product.getOfferID());
                    Intent i = new Intent(context, SimpleTabsActivity.class);
                    ReserveUserList.setOpportunityId(oppId);
                    i.putExtra("OppId", oppId);
                    i.putExtra("gridClickpos", position);
                   // i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity(i);
                    //context.finish();
                } else {
                    mOnItemClickListListener.onClick(v, position);
                }
            }
        });

where am i doing wrong please assist me.

can you provide complete code with xml files so that I can run on my system?

its too large to post complete code @Sachin Saxena

its too large to post complete code @Sachin Saxena,it is working in maximum devices,but when i tried in moto nexus,app is crashing with that error.
