如何自定义的ListView
如何自定义的ListView?
在Android中,有一种观点认为的ListView。
这ListView是一种意见认为,将列出了相同的配置布局。
最简单的方式使用,或我会列出你将只是一个简单的TextView的。
然而,如何使用这样一个简单的什么,什么实用?
简单地列出产品名称和用户名,不能有任何例如。
或发送语音或过渡的一个按钮在屏幕上显示的产品名称,详细信息“按钮,该用户的用户名,不仅只是文字,你要设置按钮,我相信,或者怎么样,和你想要的其他自定义,如果有很多。
使用ListView是有点混乱,我会告诉你如何使用自己的好。
我试探性地,这样一来,不管是不是相当普遍使用。
首先,你创建的ListView中的行布局。
如何使布局正是因为当你在屏幕的布局相同。
步骤步骤,添加了XML,继续添加查看。
由于这种方法已经被前面介绍,请参阅以下。
如何添加的Android XML
如何设置在Eclipse XML布局
在这种情况下,让我们到下面的布局作为样本。
放置一个按钮和TextView中,巴顿是要在最右边显示。
我认为,无论哪种方式是不同的,是像下面的例子。
<?XML版本=“1.0”编码=“UTF-8”?>
<RelativeLayout
XMLNS:机器人“http://schemas.android.com/apk/res/android”
机器人:layout_height =的“wrap_content”的机器人:layout_width =“fill_parent”>
<TextView的机器人:layout_width =“wrap_content的
机器人:layout_height =“wrap_content的
机器人:ID =“+ ID / nameText”>
</ TextView的>
<按钮机器人:layout_width =“wrap_content”的
机器人:layout_height =“wrap_content的
机器人:layout_alignParentRight =“TRUE”
机器人:ID =“@ + ID / detailButton的”
机器人:文本=“@串/细节”
</按钮>
</ RelativeLayout>
这段时间,以满足要求“按钮是极右”,显示母公司的布局正在使用RelativeLayout。
由属性真实layout_width RelativeLayout,全宽屏幕和家长,在ListView行本身的宽度。
那就是真正的layout_alignParentRight按钮,被放置在最右侧的RelativeLayout。
这一主题,使自定义ListView的,只有上面显示的是一个例子。
在与您最喜爱的同时,请布局。
下面是创建ListView的显示主屏幕。
首先,让我们创建一个屏幕布局。
这一次,我们只是简单地说,TextView的显示在顶部的头,和它下面显示的ListView。
头,或将用于显示标题,或列表的数量,这个时候你只需要展示一个简单的固定字符。
使用ListView的显示屏幕,而不是正常的活动,活动,你将继承ListActivity。 即使它是绝对必要的,你可能有利于继承ListActivity。
虽然后来,反正像下面的XML布局。
<?XML版本=“1.0”编码=“UTF-8”?>
<LinearLayout中的xmlns:机器人=“http://schemas.android.com/apk/res/android”
机器人:方向=“垂直”
机器人:layout_width =“fill_parent”
机器人:layout_height =“fill_parent”
>
<TextView的
机器人:layout_width =“fill_parent”
机器人:layout_height =“wrap_content的
机器人:文本=“@串/你好”
/>
<ListView的机器人:layout_width =“wrap_content的
机器人:layout_height =“wrap_content的
机器人:ID =“@ + ID /机器人:清单”>
</ ListView中>
<TextView的机器人:layout_width =“wrap_content的
机器人:layout_height =“wrap_content的
Android:编号=“@ + ID /机器人:空”
机器人:文本=“@串/ NODATA”
</ TextView的>
</ LinearLayout中>
在LinearLayout中,已部署TextView中,ListView中,TextView的。
第一TextView的是一个TextView显示名称只有一个简单的应用。
ListView是TextView中的第二次和第三次,我想你要注意一点,机器人:id属性的值。
你是空的:@ + ID /机器人:列表,@ + ID /机器人。
TextView和说的东西,最后,这是措辞名单中的数据显示,即使是有没有摆在首位。
属性的文本,虽然它是字符串/ NODATA,这是一个string.xml字符串,你自己定义。
例如,你已经设立的字眼,如“不有。”
在这种方式中,活动是要继承的的ListActivity是,你自动转到我以下处理。
+ ID /机器人:如果ListView,它在列表中指定不显示任何内容,@ + ID /机器人,而不是显示在指定空。
这是上述点,而不是一种正常的活动,是继承ListActivity方便。
定义屏幕布局,是迄今为止。
接下来,你将提供的方块组成的一类,并把信息,包括一个字符串设置ListView的。
你知道调用JavaBean的东西。
你知道我想学习Servlet和JSP,如果有更多的。
JavaBean是和我有一些规则,严格···
我把一点点走在一个不同的故事方向。 我很抱歉。
请想的只是一个简单的类,一个私有变量,存在的getter setter和一个公共的方法。
在这里,它是足够的。
作为一个例子,这个时候,在ListView被认为是一个部署产品名称和按钮飞,该产品的URL的功能。
需要的信息是产品的名称和URL。
你都作为一个String类型的类,只为每个变量的setter和产品的名称和URL将被储存,getter方法。
这是东西像下面的一个例子。
公共类ItemBean {
私人字符串名称=“”;
私人字符串URL =“”;
公共无效的setName(String名称){
this.name =名称;
}
公共字符串getName(){
返回的名称;
}
公共的无效setUrl(字符串URL){
this.url = URL;
}
公共字符串的getURL(){
返回URL;
}
}
将继续产生一个ListView的,这个类的一个实例显示的数据。
以至于后来我张贴的示例代码,你知道当时。
以下是活动的实施。
首先,要继承ListActivity。
ListActivity是活动的一个子类,如与活动的onCreate是正常的。
本次活动,是生成并显示在ListView中显示的数据。
ListView是setListAdapter(),数据将进入参数设置适配器的实例中显示的方法。
这也是由继承ListActivity得到的利益。
适配器是要显示的名单逐个数据的实例。
适配器来处理多个,有名为ArrayAdater类,因为这个时候,以显示自定义的ListView,你会ArrayAdapter继承这个类来创建自己的Adapter类。
请执行在Acitvity,下面的类。 (你当然也作为一个独立的Java文件)。
类ListAdapter延伸ArrayAdapter <ItemBean> {
私人LayoutInflater mInflater;
私人TextView的mTitle;
私人按键mButton;
的公共ListAdapter(上下文的背景下,的名单<ItemBean>对象){
超(上下文,0,对象);
mInflater =(LayoutInflater)的context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
公众视野getView(最终诠释立场,观点convertView,ViewGroup的父){
(convertView == NULL){
convertView = mInflater.inflate(R.layout.row,NULL);
}
最后ItemBean项目= this.getItem(位置);
(item! = NULL){
mTitle =(TextView中)convertView.findViewById(R.id.nameText);
mTitle.setText(item.getName());
mButton =(按钮)convertView.findViewById“(R.id.detailButton);
mButton.setOnClickListener(新OnClickListener的(){
公共无效的onClick(视图v){
URI的URI = Uri.parse(item.getUrl());
意图我=新意图(Intent.ACTION_VIEW,URI);
startActivity(I);
}
});
}
返回convertView;
}
}
类的继承,是ArrayAdapter <ItemBean>。
(而不是S ArrayAdapter,我应该说,即使BaseAdapter的,它BaseAdapter的,所以他们也遇到和问题不能得到解决,我使用它,因为ArrayAdapter。)
边后生成一个ArrayList的元素自行ItemBean早些时候,采取这一类活动的优势,您可以使用生成的适配器,通过这个类的构造。
从虚拟机将被调用的方法,一数据线GetView方法将被调用显示。
以下几部分组成:
最后ItemBean项目= this.getItem(位置);
在这方面,所以你可以用这种方法被称为行相关的一个实例ItemBean,然后,只要你喜欢,请给予治疗。
TextView的设置的名称时,在这个例子中,按下按钮,你的事实,你要连接使用浏览器的URL与设置。
在这个阶段,我可能还是有点不确定。
接下来,让我们来看看在一个名为的过程中,要设置实际上生成此适配器。
这段时间,名称,让我们的应用程序称为过渡到其搜索引擎的页面,按下按钮,搜索引擎的名称。
所有你需要做的是下列()的onCreate。
无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ItemBean雅虎=新ItemBean();
yahoo.setName(“雅虎”);
yahoo.setUrl(“http://www.yahoo.co.jp”);
ItemBean谷歌=新ItemBean();
google.setName(“谷歌”);
google.setUrl(“http://www.google.co.jp”);
的名单<ItemBean>列表新的ArrayList的<ItemBean>();
list.add(雅虎);
list.add(谷歌);
ListAdapter适配器=新ListAdapter(getApplicationContext(),名单);
setListAdapter(适配器)
}
这是坚实的写作,使谷歌和雅虎ItemBean实例,然后将它添加实例名单<ItemBean>,生成您自己ListAdapter适配器使用的家伙,然后setListAdapter()我会通过。
这样就完成了。
下面的屏幕将显示。

此示例代码可以从下面下载。
如何自定义ListView的示例代码
一旦你了解这里介绍的方法,创建一个布局休息,只要你喜欢,你可以创建自己的适配器根据()来定制它,你应该能够最有可能作出什么getView甚至ListView的布局。
如果你想使用的Web服务API,其中的信息回来一起,把创建一个JavaBean类,分析响应,并添加到ArrayList,创建一个数据实例,我觉得如果Shiteyare,可以适用的方法,这里介绍的是后。
好吧,我希望你能想到的可能是有用的,使用一个通用的是什么···。











