Monday, April 13, 2015

Android : Update ImageView on listview click event



I am trying to get an image on my BikeActivity to update when a row is clicked in the Custom adapter but I am having trouble finding the code to do so and everything i've tried has resulted in the program crashing..


I want the ImageView iv to update on a listitem click and update with the image on that row in the array, any help is appreciated! Cheers.



public class BikeActivity extends Activity {

ListView lv;
Context context;
TextView tv;
ImageView iv;
ArrayList prgmName;
public static int [] prgmImages={R.drawable.images1,R.drawable.images2,R.drawable.images3,R.drawable.images4,R.drawable.images5,R.drawable.images6};
public static String[] bikes = new String[]{
"Liteville 301, Enduro",
"Liteville 601, Downhill",
"Liteville 901, Downhill",
"Liteville Marathon, XC",
"Liteville Werksmachine, Freeride",
"Liteville AllMountain"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bike);

context=this;

lv=(ListView) findViewById(R.id.listView);
lv.setAdapter(new CustomAdapter(this, bikes,prgmImages));
iv=(ImageView) findViewById(R.id.imageView2);
iv.setImageResource(R.drawable.images1);
tv=(TextView) findViewById(R.id.textinfo);
tv.setText(String.valueOf("BLAHBLAHTESTESTLDKSJHF:"));






}

@Override
public boolean onCreateOptionsMenu(Menu menu) {


// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_bike, menu);
return true;
}

}


Code for the custom adapter:



public class CustomAdapter extends BaseAdapter{
String [] result;
Context context;
int [] imageId;
private static LayoutInflater inflater=null;
public CustomAdapter(BikeActivity bikeActivity, String[] bikes, int[] prgmImages) {
// TODO Auto-generated constructor stub
result=bikes;
context=bikeActivity;
imageId=prgmImages;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {

return result.length;
}

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

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

public class Holder
{
TextView tv;
ImageView img;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final Holder holder=new Holder();
View rowView;

rowView = inflater.inflate(R.layout.list_item, null);
holder.tv=(TextView) rowView.findViewById(R.id.textView1);
holder.img=(ImageView) rowView.findViewById(R.id.imageView1);

holder.tv.setText(result[position]);
holder.img.setImageResource(imageId[position]);


rowView.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {


Toast.makeText(context, ""+result[position], Toast.LENGTH_LONG).show();
}
});

return rowView;

}



}

No comments:

Post a Comment