ArrayAdapter用法(arrayadapter)
大家好,我是小夏,我来为大家解答以上问题。ArrayAdapter用法,arrayadapter很多人还不知道,现在让我们一起来看看吧!
android中的Array adapter类用于把一个列表中的数据绑定到一个listview, 它就像一个桥梁,把数据和视图联系起来,下面以我的编码实践讲解如何使用arrayadapter来实现自定义的显示格式。如下图所示,它的功能是在文本框输入内容,点击OK,可以把输入的数据加到下面的列表中,列表每一行显示输入的内容和时期
1.添加两个layout, 一个是activity的, 一个是每一行数据的
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ok"
android:clickable="true"
android:id="@+id/btn3"
android:layout_below="@+id/et1"/>
<ListView
android:id = "@+id/listview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/btn3"
/>
</RelativeLayout>
2.增加一个类用于保存每一行的数据:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background = "#ffffffff"
>
<TextView
android:id="@+id/date"
android:layout_width = "wrap_content"
android:layout_height = "fill_parent"
android:padding = "10dp"
android:scrollbars = "vertical"
android:fadingEdge = "vertical"
android:layout_alignParentRight="true"
android:textColor = "#ffff0000"
/>
<TextView
android:id="@+id/title"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:padding = "10dp"
android:scrollbars = "vertical"
android:fadingEdge = "vertical"
android:layout_alignParentLeft="true"
android:textColor = "#ffff0000"
/>
</RelativeLayout>
3.写一个自定义的array adapter,覆盖原来的getView方法,该方法的功能即是返回一个VIEW,这个view将被用于显示一行数据
package pack.xianle.test;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ToDoItem {
String task;
Date created;
public ToDoItem(String t, Date c){
task = t;
this.created = c;
}
public ToDoItem(String t){
this(t, new Date(java.lang.System.currentTimeMillis()));
}
public String getTask(){
return task;
}
public String getDate(){
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy");
String dataString = sdf.format(created);
return dataString;
}
@Override
public String toString(){
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy");
String dataString = sdf.format(created);
return "["+ dataString +"]" + task;
}
}
3.写activity的代码:
package pack.xianle.test;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MyArrayAdapter extends ArrayAdapter<ToDoItem> {
int resource;
public MyArrayAdapter(Context c, int r, List<ToDoItem> items){
super(c, r, items);
this.resource = r;
}
@Override
public View getView(int position, View v, ViewGroup parent) {
ToDoItem item=getItem(position);
LinearLayout todoView;
String taskString = item.getTask();
String dateString = item.getDate();
if (v == null) {
todoView = new LinearLayout(getContext());
LayoutInflater iv = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
iv.inflate(resource, todoView, true);
} else {
todoView = (LinearLayout)v;
}
TextView data = (TextView)todoView.findViewById(R.id.date);
TextView text = (TextView)todoView.findViewById(R.id.title);
data.setText(dateString);
text.setText(taskString);
return todoView;
}
}
ArrayAdapter也可以用于Spinner,如下代码所示:
package pack.xianle.test;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
public class ToDoList extends Activity {
private ArrayList<ToDoItem> todoItems;
private ListView mListView;
private EditText mEditText;
private MyArrayAdapter aa;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.todolist);
this.mListView = (ListView)this.findViewById(R.id.listview);
this.mEditText = (EditText)this.findViewById(R.id.et1);
todoItems = new ArrayList<ToDoItem>();
aa = new MyArrayAdapter(this, R.layout.todoitem,todoItems);
mListView.setAdapter(aa);
Button btn = (Button)this.findViewById(R.id.btn3);
btn.setOnClickListener(new OnClickListener(){
public void onClick(View v){
ToDoItem item = new ToDoItem(mEditText.getText().toString());
todoItems.add(0, item);
mEditText.setText("");
aa.notifyDataSetChanged();
}
});
}
}
本文到此讲解完毕了,希望对大家有帮助。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
试驾极狐阿尔法S(ARCFOX αS)是一次令人印象深刻的体验。从咨询开始,品牌的专业客服迅速回应了我的疑问,...浏览全文>>
-
如果您想预约哈弗猛龙的试驾体验,可以按照以下步骤快速在4S店完成预约:首先,您可以通过哈弗汽车的官方网站...浏览全文>>
-
如果您想体验零跑汽车的试驾服务,可以通过以下步骤在4S店快速预约:首先,访问零跑汽车的官方网站或通过其官...浏览全文>>
-
试驾奔驰迈巴赫S级的预约流程简单清晰,以下是具体步骤:首先,访问奔驰官方网站或联系当地授权经销商。在网站...浏览全文>>
-
纳米01试驾流程通常包括以下几个步骤:第一步:预约试驾用户可以通过品牌官网、4S店或电话预约试驾。提前预约...浏览全文>>
-
奔腾B70是一款集时尚设计与卓越性能于一身的中型轿车,近期有幸对其进行了一次深度试驾。这款车型不仅外观大气...浏览全文>>
-
想要快速预约福特蒙迪欧的试驾体验驾驶乐趣?以下是一些简单步骤帮助您轻松完成:首先,访问福特官网或通过福...浏览全文>>
-
大众试驾,轻松搞定试驾想要深入了解一款车的性能与驾驶感受?试驾是最佳选择!无论是追求操控感的运动型轿车...浏览全文>>
-
试驾现代胜达时,您需要满足一些基本条件以确保安全和顺利的体验。首先,您必须持有有效的驾驶证,并且驾龄通...浏览全文>>
-
小鹏G7是一款备受关注的智能电动车,对于新手来说,试驾前需要了解一些关键步骤和注意事项,确保安全且充分体...浏览全文>>
- 哈弗猛龙预约试驾,如何在4S店快速预约?
- 零跑汽车试驾,如何在4S店快速预约?
- 江淮iEV7试驾预约预约流程
- 试驾MG4 EV全攻略
- 奥迪SQ5 Sportback预约试驾,线上+线下操作指南
- 全顺试驾预约,一键搞定,开启豪华驾驶之旅
- 魏牌预约试驾全攻略
- 试驾零跑汽车零跑C01,畅享豪华驾乘,体验卓越性能
- 试驾哈弗H6操作指南
- 零跑T03试驾,畅享豪华驾乘,体验卓越性能
- 菱势汽车预约试驾,轻松搞定试驾流程
- MINI试驾,线上+线下操作指南
- 试驾沃尔沃XC60,从预约到试驾的完美旅程
- 试驾QQ多米,畅享豪华驾乘,体验卓越性能
- 试驾丰田汉兰达,一键搞定,开启豪华驾驶之旅
- 力帆预约试驾,一键搞定,开启豪华驾驶之旅
- 阿维塔12预约试驾,4S店体验全攻略
- 试驾江铃E路顺V6,简单几步,开启完美试驾之旅
- 灵悉L试驾预约,如何享受4S店的专业服务?
- 极氪7X试驾,如何享受4S店的专业服务?