Rafiq Januardi
Rafiq Januardi

Reputation: 23

Start Intent from Adapter

I follow this tutorial android-material-design-gridview

I want to start intent from this base adapter;

public class CustomAndroidGridViewAdapter extends BaseAdapter {

private Context mContext;
private final String[] string;
private final int[] Imageid;

public CustomAndroidGridViewAdapter(Context c,String[] string,int[] Imageid ) {
    mContext = c;
    this.Imageid = Imageid;
    this.string = string;
}



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

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

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

@Override
public View getView(int p, View convertView, ViewGroup parent) {
    View grid;
    LayoutInflater inflater = (LayoutInflater) mContext
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);


    if (convertView == null) {

        grid = new View(mContext);
        grid = inflater.inflate(R.layout.gridview_custom_layout, null);
        TextView textView = (TextView) grid.findViewById(R.id.gridview_text);
        ImageView imageView = (ImageView)grid.findViewById(R.id.gridview_image);
        textView.setText(string[p]);
        imageView.setImageResource(Imageid[p]);
    } else {
        grid = (View) convertView;
    }

    return grid;
}}

and this is MainActivity

public class MainActivity extends AppCompatActivity {

Toolbar toolbar;
CollapsingToolbarLayout collapsingToolbarLayoutAndroid;
CoordinatorLayout rootLayoutAndroid;
GridView gridView;
Context context;
ArrayList arrayList;

public static String[] gridViewStrings = {
        "Helper InSiti",
        "Parkir InSiti",


};
public static int[] gridViewImages = {
        R.drawable.icon_helper_insiti,
        R.drawable.icon_parkir_insiti,

};

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

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    gridView = (GridView) findViewById(R.id.grid);
    gridView.setAdapter(new CustomAndroidGridViewAdapter(this, gridViewStrings, gridViewImages));

    initInstances();
}

private void initInstances() {
    rootLayoutAndroid = (CoordinatorLayout) findViewById(R.id.android_coordinator_layout);
    collapsingToolbarLayoutAndroid = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar_android_layout);
    collapsingToolbarLayoutAndroid.setTitle("Material Grid");
}}

Its contain 2 ImageView icon that use for button onClick to another activity I try many ways to start intent from MainActivity to another activity, but fail... Please help...

Upvotes: 2

Views: 6518

Answers (1)

Jorgesys
Jorgesys

Reputation: 126493

Since you are receiving the context into the constructor of your Adapter:

public CustomAndroidGridViewAdapter(Context c,String[] string,int[] Imageid ) {
    mContext = c;
    this.Imageid = Imageid;
    this.string = string;
}

use this context to start the Intent, for example :

 Intent intent = new Intent(mContext, OtherActivity.class);
 mContext.startActivity(intent);

Upvotes: 2

Related Questions