Android在Imageview上自定义listview单击获取文本视图数据并打开活动 //将菜单项添加到ListView mylist=(ListView)findViewById(R.id.lstShowCatalog); ListAdapter=newLazyAdapter(this,menuItems,getApplicationContext()); mylist.setAdapter(适配器); mylist.setOnItemClickListener(新的OnItemClickListener(){ @凌驾 public void onItemClick(AdapterView父视图、视图、整型位置、, 长id){ //TODO自动生成的方法存根 如果(位置>=0) { TextView c=(TextView)view.findViewById(R.id.txtlageimage); largeimage=c.getText().toString(); ImageView thumb_image=(ImageView)view.findViewById(R.id.ivcatalouge);//thumb image thumb_image.setOnClickListener(新的OnClickListener(){ @凌驾 公共void onClick(视图v){ //TODO自动生成的方法存根 如果(largeimage.length()>0) { 意图i=新意图(); i、 setClass(getApplicationContext(),FrmShowSingleImage.class); i、 putExtra(“大图像”,大图像); 星触觉(i); //Toast.makeText(getApplicationContext(),largeimage,Toast.LENGTH_SHORT).show(); 大图像=”; } }}); //Toast.makeText(getApplicationContext(),largeimage,Toast.LENGTH_SHORT).show(); } }});
我想在thumb image onclick上打开一个新活动。当第一次选择项目时,它可以正常工作。如果我单击“拇指图像”而不选择项目,它将变为旧值Android在Imageview上自定义listview单击获取文本视图数据并打开活动 //将菜单项添加到ListView mylist=(ListView)findViewById(R.id.lstShowCatalog); ListAdapter=newLazyAdapter(this,menuItems,getApplicationContext()); mylist.setAdapter(适配器); mylist.setOnItemClickListener(新的OnItemClickListener(){ @凌驾 public void onItemClick(AdapterView父视图、视图、整型位置、, 长id){ //TODO自动生成的方法存根 如果(位置>=0) { TextView c=(TextView)view.findViewById(R.id.txtlageimage); largeimage=c.getText().toString(); ImageView thumb_image=(ImageView)view.findViewById(R.id.ivcatalouge);//thumb image thumb_image.setOnClickListener(新的OnClickListener(){ @凌驾 公共void onClick(视图v){ //TODO自动生成的方法存根 如果(largeimage.length()>0) { 意图i=新意图(); i、 setClass(getApplicationContext(),FrmShowSingleImage.class); i、 putExtra(“大图像”,大图像); 星触觉(i); //Toast.makeText(getApplicationContext(),largeimage,Toast.LENGTH_SHORT).show(); 大图像=”; } }}); //Toast.makeText(getApplicationContext(),largeimage,Toast.LENGTH_SHORT).show(); } }});,android,android-listview,android-imageview,textview,Android,Android Listview,Android Imageview,Textview,我想在thumb image onclick上打开一个新活动。当第一次选择项目时,它可以正常工作。如果我单击“拇指图像”而不选择项目,它将变为旧值 // Adding menuItems to ListView mylist=(ListView)findViewById(R.id.lstshowcatalogue); ListAdapter adapter=new LazyAdapter(this, menuItems,getApplicationContext()
// 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();
}
}});
这是我更新的listview适配器
公共视图getView(int位置、视图转换视图、视图组父视图){
视图vi=转换视图;
if(convertView==null)
vi=充气机充气(R.layout.list_项,空);
TextView name=(TextView)vi.findviewbyd(R.id.name);//name
TextView desc=(TextView)vi.findViewById(R.id.description);//集合
TextView成本=(TextView)vi.findViewById(R.id.cost);//成本
TextView类别=(TextView)vi.findViewById(R.id.txtcategory);//成本
TextView规范=(TextView)vi.findviewbyd(R.id.txtspec);//成本
TextView-largeimg=(TextView)vi.findViewById(R.id.txtlageimage);//成本
ImageView thumb_image=(ImageView)vi.findViewById(R.id.ivcatalouge);//thumb image
thumb_image.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
TextView c=(TextView)v.findViewById(R.id.txtlageimage);
意图i=新意图();
i、 setClass(mCtx、frmshowsingelimage.class);
i、 putExtra(“largeimage”,c.getText());
mCtx.星触觉(i);
}});
HashMap宋=新HashMap();
宋=数据。获取(位置);
//在listview中设置所有值
name.setText(song.get(FrmShowCatlogue.KEY_MODEL));
desc.setText(song.get(FrmShowCatlogue.KEY_集合));
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));
较大的设置可见性(视图已消失);
尝试
{
字符串文件名=song.get(FrmShowCatlogue.KEY_IMAGES.toString());
filename=“thumbs/”+文件名;
//获取输入流
InputStream ims=mCtx.getAssets().open(文件名);
//将图像加载为可绘制
Drawable d=Drawable.createFromStream(ims,null);
//将图像设置为ImageView
thumb_图像。可设置图像绘制(d);
}
捕获(IOEX异常)
{
//thumb_image.setVisibility(View.GONE);
}
返回vi;
}
现在我在拇指点击时得到空指针异常。
我已经从listview的SetOnItemClickListener中删除了thumb_image onclick。我想也许你应该将thumb_image.setOnClickListener(…)放入适配器的getView方法中,这样,当显示相应的项时,正确的大图像将被设置为thumb_image的click事件。如果你的列表项click没有被识别,这是因为您的自定义列表项中有许多可单击项(图像按钮、按钮…)。为这些项目设置
android:focusable=false
,然后单击listview即可
然后正如JaredLua所说,您应该在适配器中添加onClickLisener(),因为它只用于thumb_图像,而不用于整个listitem 从这三个环节你可以得到明确的想法,希望对你有所帮助
:)现在,我在单击鼠标时遇到空指针异常。我已从ListView的SetOnItemClickListener中删除了thumb_image onclick在自定义列表项充气后是否将onclicklistener放入适配器中。您还需要在那里执行CustomListItem.findviewbyId(R.id.ivcatalouge);其中v是图像视图和列表项。这导致了空指针异常…ImageView thumb_image=(ImageView)vi.findViewById(R.id.ivcatalouge);//thumb image thumb_image.setOnClickListener(新OnClickListener(){@Override public void onClick(视图v){//TODO自动生成的方法存根boldTextView c=(TextView)v.findViewById(R。
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;
}