Reputation: 1
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
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
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