Search code examples
androidgridviewstart-activity

how to start new activity via gridview onitemclick?


i want to open new activity on itemclick listner in gridview.like this. Click position 1(india) ->open activity 1.Click position 2(brazil)->open activity 2.Click position 3(canada)->open activity 3. how to possible it? This is my code.

   android.widget.AdapterView.OnItemClickListener; 
public class GridViewExampleActivity extends Activity {
 /** Called when the activity is first created. */

private GridviewAdapter mAdapter;
private ArrayList<String> listCountry;
private ArrayList<Integer> listFlag;

private GridView gridView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    prepareList();

    // prepared arraylist and passed it to the Adapter class
    mAdapter = new GridviewAdapter(this,listCountry, listFlag);

    // Set custom adapter to gridview
    gridView = (GridView) findViewById(R.id.gridView1);
    gridView.setAdapter(mAdapter);

    // Implement On Item click listener
    gridView.setOnItemClickListener(new OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                long arg3) {
            Toast.makeText(GridViewExampleActivity.this, mAdapter.getItem(position), Toast.LENGTH_SHORT).show();
        }
    });

}

public void prepareList()
{
      listCountry = new ArrayList<String>();

      listCountry.add("india");
      listCountry.add("Brazil");
      listCountry.add("Canada");
      listCountry.add("China");


      listFlag = new ArrayList<Integer>();

      listFlag.add(R.drawable.india);
      listFlag.add(R.drawable.brazil);
      listFlag.add(R.drawable.canada);
      listFlag.add(R.drawable.china);



}
}

Thanks !!


Solution

  • You can open activity using intent based on position

     gridView.setOnItemClickListener(new OnItemClickListener()
                {
                    @Override
                    public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                                            long arg3) {
                        if(position==1) {
                            Intent intent = new Intent(GridViewExampleActivity.this, IndiaActivity.class);
                            startActivity(intent);
                        }
                        else if(position==2)
                        {
                            Intent intent = new Intent(GridViewExampleActivity.this, BrazilActivity.class);
                            startActivity(intent);
    
                        }
                        Toast.makeText(GridViewExampleActivity.this, mAdapter.getItem(position), Toast.LENGTH_SHORT).show();
                    }
                });