Android Custom listview on Imageview click get textview data and open activity

android, android-imageview, android-listview, textview

Solution

If your list item click doent get recognized,it is because your custom list item has many clickable items(imagebutton,button...) in it. make `android:focusable=false` for those items and your listview click will be allright.

then as JaredLua said you should add the onClickLisener() in the adapter since its for the thumb_image only and not for the listitem as a whole

Problem

``` // Adding menuItems to ListView mylist=(ListView)findViewById(R.id.lstshowcatalogue); ListAdapter adapter=new LazyAdapter(this, menuItems,getApplicationContext()); mylist.setAdapter(adapter); mylist.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> Parent, View view, int position, long id) { // TODO Auto-generated method stub if(position>=0) { TextView c = (TextView) view.findViewById(R.id.txtlargeimage); largeimage = c.getText().toString(); ImageView thumb_image=(ImageView)view.findViewById(R.id.ivcatalouge); // thumb image thumb_image.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub if(largeimage.length()>0) { Intent i=new Intent(); i.setClass(getApplicationContext(), FrmShowSingleImage.class); i.putExtra("largeimage", largeimage); startActivity(i); //Toast.makeText(getApplicationContext(), largeimage, Toast.LENGTH_SHORT).show(); largeimage=""; } }}); //Toast.makeText(getApplicationContext(), largeimage, Toast.LENGTH_SHORT).show(); } }}); ``` I want to open a new activity on thumb image onclick. It works fine when First Select item. If I click thumb image without selecting item it getting old value ``` Here is my updated listview adapter public View getView(int position, View convertView, ViewGroup parent) { View vi=convertView; if(convertView==null) vi = inflater.inflate(R.layout.list_item, null); TextView name = (TextView)vi.findViewById(R.id.name); // name TextView desc = (TextView)vi.findViewById(R.id.desciption); // collection TextView cost = (TextView)vi.findViewById(R.id.cost); // cost TextView category = (TextView)vi.findViewById(R.id.txtcategory); // cost TextView spec = (TextView)vi.findViewById(R.id.txtspec); // cost TextView largeimg = (TextView)vi.findViewById(R.id.txtlargeimage); // cost ImageView thumb_image=(ImageView)vi.findViewById(R.id.ivcatalouge); // thumb image thumb_image.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub TextView c = (TextView) v.findViewById(R.id.txtlargeimage); Intent i=new Intent(); i.setClass(mCtx, FrmShowSingleImage.class); i.putExtra("largeimage", c.getText()); mCtx.startActivity(i); }}); HashMap<String, String> song = new HashMap<String, String>(); song = data.get(position); // Setting all values in listview name.setText(song.get(FrmShowCatlogue.KEY_MODEL)); desc.setText(song.get(FrmShowCatlogue.KEY_COLLECTION)); cost.setText(song.get( FrmShowCatlogue.KEY_MRP)); category.setText(song.get( FrmShowCatlogue.KEY_CATEGORY)); spec.setText(song.get( FrmShowCatlogue.KEY_SPEC)); largeimg.setText(song.get( FrmShowCatlogue.KEY_LARGE)); largeimg.setVisibility(View.GONE); try { String filename=song.get(FrmShowCatlogue.KEY_IMAGES.toString()); filename="thumbs/" + filename; // get input stream InputStream ims = mCtx.getAssets().open(filename); // load image as Drawable Drawable d = Drawable.createFromStream(ims, null); // set image to ImageView thumb_image.setImageDrawable(d); } catch(IOException ex) { //thumb_image.setVisibility(View.GONE); } return vi; } ``` Now I am getting null pointer exception on thumb click. I have removed thumb_image onclick from SetOnItemClickListener of listview

Original source

Related problems