Zaib Khan
Zaib Khan

Reputation: 1

how to get imageview outside the scope of Onitemclicklistener

How can I get ImageView outside the scope of OnItemClickListener?

mListView2.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  @Override
  public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
            imageView2 = (ImageView) view.findViewById(R.id.applist_item_image);
            if (switches==true) {
                imageView2.setImageResource(R.drawable.on);
                preferences.edit().putBoolean("tgpref", true).commit();
                switches = false;
            } else {
                imageView2.setImageResource(R.drawable.off);
                preferences.edit().putBoolean("tgpref", false).commit();
                switches = true;
            }
         }
    });

Upvotes: 0

Views: 154

Answers (3)

Burhanuddin Rashid
Burhanuddin Rashid

Reputation: 5370

Try using inflater in `onCreate...You'll have to add the ImageView to the current layout using addView().

LayoutInflater inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View vi = inflater.inflate(R.layout.activity_row, null); //activity_row.xml is your file.
imageView2 = (ImageView) view.findViewById(R.id.applist_item_image);

Upvotes: 1

PereCullera
PereCullera

Reputation: 177

Put the

ImageView imageView2 = (ImageView) view.findViewById(R.id.applist_item_image);

outside-before the scope of the onItemClickListener.

In other words, put it on the scope of the hole class-activity

setContentView(R.layout.activity_main);

ImageView imageView2 = (ImageView) findViewById(R.id.applist_item_image);

String[] itemname = { "Wi-Fi", "Bluetooth", "Mobile Data", };
Integer[] imgid = { R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, };
ImageView mListView2 = (ListView) findViewById(R.id.lvAppList1);
preferences=PreferenceManager.getDefaultSharedPreferences(this); 
finalRowActivityadapter=newRowActivity(this,itemname,imgid); 
mListView2.setAdapter(adapter); 
mListView2.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    //here you can now access imageView2
}

Upvotes: 1

Anand Jain
Anand Jain

Reputation: 2385

You can declare imageview global like:- ImageView imageview

Upvotes: 0

Related Questions