0

My Main Activity.java which contains gridview methods and from where we can handle to open chrome custom tabs with on item click but i am unable to do this so please kindly help me in this situation

public class MainActivity extends AppCompatActivity {

GridView gridView;


String[] gridViewString = {

        "Facebook", "Twitter", "Instagram", "Gmail", "Google+"};

int[] gridViewImageId = {R.drawable.facebook, R.drawable.twitter, R.drawable.instagram, R.drawable.gmail, R.drawable.googleplus};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

CustomGridViewActivity customGridViewActivity = new CustomGridViewActivity(MainActivity.this, gridViewString, gridViewImageId);

gridView = (GridView) findViewById(R.id.column);
    gridView.setAdapter(customGridViewActivity);
    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        switch (i) {
            case 0:
                Intent a = new Intent(getApplicationContext(), MainActivity.class);
                a.putExtra("id", l);
                a.putExtra("URL", "https://www.facebook.com");
                a.putExtra("Name", "Facebook");
                startActivity(a);
                break;

            default:
                break;
        }
    }
    });
}

}

This Is my grid view Adapter Java Class

public class CustomGridViewActivity extends BaseAdapter {
private Context mContext;
private final String[] gridViewString;
private final int[] gridViewImageId;
private Object convertView;

public CustomGridViewActivity(Context context, String[] gridViewString, int[] gridViewImageId) {
    mContext= context;
    this.gridViewString = gridViewString;
    this.gridViewImageId = gridViewImageId;
}

@Override
public int getCount() {
    return gridViewString.length;
}

@Override
public Object getItem(int i) {
    return null;
}

@Override
public long getItemId(int i) {
    return 0;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    View gridViewAndroid;
    LayoutInflater inflater=(LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);


    if (convertView == null)
    {
        gridViewAndroid=new View(mContext);
        gridViewAndroid=inflater.inflate(R.layout.structure,null);

        TextView textViewAndroid=(TextView) gridViewAndroid.findViewById(R.id.gridView_text);
        ImageView imageViewAndroid=(ImageView) gridViewAndroid.findViewById(R.id.gridView_image);

        textViewAndroid.setText(gridViewString[i]);
        imageViewAndroid.setImageResource(gridViewImageId[i]);
    }
    else {
        gridViewAndroid=(View) convertView;
    }
    return gridViewAndroid;
}

}

Please help me to implement custom tabs with on item click of gridview

SaravInfern
  • 3,338
  • 1
  • 20
  • 44
Agam Jain
  • 17
  • 4

1 Answers1

0

You are trying to open "MainActivity again in your onItemClick interface.

public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
    switch (i) {
        case 0:
            Intent a = new Intent(getApplicationContext(), MainActivity.class);///why are you trying to open MainActivity Again
            a.putExtra("id", l);
            a.putExtra("URL", "https://www.facebook.com");
            a.putExtra("Name", "Facebook");
            startActivity(a);
            break;

        default:
            break;
    }
}

Sample

public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
    switch (i) {
        case 0:
             CustomTabsIntent customTabsIntent = new 
             CustomTabsIntent.Builder().build();
             CustomTabActivityHelper.openCustomTab(
                this,// activity
                customTabsIntent,
                Uri.parse("http://www.google.com"), 
                new WebviewFallback());
    default:
    break;
    }
}

Refer Here to open custom chrome tab from your activity

SaravInfern
  • 3,338
  • 1
  • 20
  • 44