
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null
if (convertView == null) {
holder=new ViewHolder()
//可以理解为从vlist获取view 之后把view返回给ListView
convertView = mInflater.inflate(R.layout.vlist, null)
holder.title = (TextView)convertView.findViewById(R.id.title)
holder.info = (TextView)convertView.findViewById(R.id.info)
holder.viewBtn = (Button)convertView.findViewById(R.id.view_btn)
convertView.setTag(holder)
}else {
holder = (ViewHolder)convertView.getTag()
}
holder.title.setText((String)mData.get(position).get("title"))
holder.info.setText((String)mData.get(position).get("info"))
holder.viewBtn.setTag(position)
//给Button添加单击事件 添加Button之后ListView将失去焦点 需要的直接把Button的焦点去掉
holder.viewBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showInfo(position)
}
})
//holder.viewBtn.setOnClickListener(MyListener(position))
return convertView
}
}
//提取出来方便点
public final class ViewHolder {
public TextView title
public TextView info
public Button viewBtn
}
public void showInfo(int position){
ImageView img=new ImageView(ListViewActivity.this)
img.setImageResource(R.drawable.b)
new AlertDialog.Builder(this).setView(img)
.setTitle("详情"+position)
.setMessage("菜名:"+title[position]+" 价格:"+info[position])
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.show()
}
给你发个列子
你是的意思是在listView的每一项里都加一个固定的按钮或图片吗,那就将它写到一个xml中,然后inflate到listView中,这样listView的每一项的布局就都是xml中的布局了。<LinearLayout xmlns:android="
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
/>
<ListView
android:id="@+id/listView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
setContentView(R.layout.listview)
String[] data = {"a", "b", "c", "d", "a", "b", "c", "d", "a", "b", "c", "d"}
ListView listView = (ListView) findViewById(R.id.listView)
listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, data))
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)