Moudiz
Moudiz

Reputation: 7377

setOnItemClickListener in a fragment and image view

When I want to use setOnItemClickListener I use the below

GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(Tab1Fragment.getContext(null)));
gridview.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            // Send intent to SingleViewActivity
            Intent i = new Intent(getApplicationContext(), SingleViewActivity.class);
           // Pass image index
           i.putExtra("id", position);
           startActivity(i);
    } 
});

But for the below code I am not able to do like the above :

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.gridview1, null);
    GridView listView = (GridView) view.findViewById(R.id.mainGrid1);
    listView.setAdapter(new Adapter());
    GridView.setOnItemClickListener(new OnItemClickListener() {         
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            // Send intent to SingleViewActivity
            Intent i = new Intent(getApplicationContext(), SingleViewActivity.class);
            // Pass image index
            i.putExtra("id", position);
            startActivity(i);
        }
    });
    return view;
}

enter image description here this is an error image

Upvotes: 3

Views: 2032

Answers (2)

Bidhan
Bidhan

Reputation: 10687

Instead of

GridView.setOnItemClickListener(new OnItemClickListener() {  
    ....              
} });

Do this

listView.setOnItemClickListener(new OnItemClickListener() {  
    ....              
} });

GridView is a class while listView is a GridView variable which you have initialized in your code. Use that instead.

Upvotes: 1

Pankaj
Pankaj

Reputation: 8058

Why you are using Class name Gridview instead of gridview variable you have declared as listview

wrong code:-

GridView.setOnItemClickListener(new OnItemClickListener() {         
           public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                    // Send intent to SingleViewActivity
               Intent i = new Intent(getApplicationContext(), SingleViewActivity.class);
               // Pass image index
               i.putExtra("id", position);
               startActivity(i);
               } });

Instead of above code change it to

listView.setOnItemClickListener(new OnItemClickListener() {         
           public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                    // Send intent to SingleViewActivity
               Intent i = new Intent(getApplicationContext(), SingleViewActivity.class);
               // Pass image index
               i.putExtra("id", position);
               startActivity(i);
               } });

Upvotes: 2

Related Questions