带有 BaseAdapter 的 Android ListView 内的 ImageButton

Posted

技术标签:

【中文标题】带有 BaseAdapter 的 Android ListView 内的 ImageButton【英文标题】:ImageButton inside Android ListView with BaseAdapter 【发布时间】:2011-09-28 18:26:07 【问题描述】:

我已经实现了一个 BaseAdapter 并将该 BaseAdapter 绑定到我的 ListView。 ListView 的每一行的布局都包含一个 ImageButton。如何将该 ImageButton 绑定到单击侦听器,然后使用该 ImageButton 调用新活动。

【问题讨论】:

【参考方案1】:

这是一个示例适配器类。

import java.util.ArrayList;

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.amazon.mp3.AlbumDetail.Details;



public class CustomListAdapter extends BaseAdapter 
private  ArrayList<Details> allElementDetails;
private Context con; 
private LayoutInflater mInflater;
String temp;
public CustomListAdapter(Context context, ArrayList<Details> results) 
    allElementDetails = results;
    mInflater = LayoutInflater.from(context);
    con=context;

public int getCount() 
    return allElementDetails.size();        

public Object getItem(int position) 
    return allElementDetails.get(position);

public long getItemId(int position) 
    return position;

public View getView(final int position, View convertView, ViewGroup parent) 

                    //select ur xml file
    convertView = mInflater.inflate(R.layout.listview_elements, null);

    TextView textview1 = (TextView) convertView.findViewById(R.id.TextView01);
    TextView textview2 = (TextView) convertView.findViewById(R.id.TextView02);
    TextView textview3 = (TextView) convertView.findViewById(R.id.TextView03);
    Button buy=(Button)convertView.findViewById(R.id.buy_song_button);
    buy.setOnClickListener(new OnClickListener() 

        public void onClick(View v) 

        Intent intent=new   Intent(con,Buy_song.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

         con.startActivity(intent);


        
            else
                Toast.makeText(con,"Not available for purchase", Toast.LENGTH_SHORT).show();

        
    );

    if(allElementDetails.get(position).songname.contains("&amp;"))
    
  temp=allElementDetails.get(position).songname.replace("&amp;", "and");
    textview1.setText(temp);
    
    else
    textview1.setText(allElementDetails.get(position).songname);

    textview2.setText(allElementDetails.get(position).runtime);
    if(allElementDetails.get(position).price.startsWith("$"))
    textview3.setText(allElementDetails.get(position).price);
    else
           textview3.setText("Album only");
    return convertView;
    


在此适配器中查找购买按钮。

【讨论】:

以上是关于带有 BaseAdapter 的 Android ListView 内的 ImageButton的主要内容,如果未能解决你的问题,请参考以下文章

Android - 带有自定义 BaseAdapter 的 Gridview,在位置获得点击视图

在使用Baseadapter的Listview中,Android Plus和Minus按钮无法正常工作

带有 BaseAdapter 的 ListView

带有 BaseAdapter 的空白 ListView

ListView 不显示带有 BaseAdapter 的 ImageButton

如何使用 BaseAdapter 刷新带有文本和图像的列表视图?