android的listview中怎么加入button

android的listview中怎么加入button,第1张

//注意原本getView方法中的int position变量是非final的,现在改为final

@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))


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11259296.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存