Java 如何编写ArrayList适配器?
我想将arrayList的字段添加到listView,但我不知道如何编写适配器。请帮帮我 我需要一个适配器类。我必须在listView上查看tutar:1.34 kalem=“xx” 类别:Java 如何编写ArrayList适配器?,java,android,arraylist,Java,Android,Arraylist,我想将arrayList的字段添加到listView,但我不知道如何编写适配器。请帮帮我 我需要一个适配器类。我必须在listView上查看tutar:1.34 kalem=“xx” 类别: public class Income { String kalem; int tutar; public int getTutar() { return tutar; } public void setTutar(int tutar) { this.tutar = tutar;
public class Income {
String kalem;
int tutar;
public int getTutar() {
return tutar;
}
public void setTutar(int tutar) {
this.tutar = tutar;
}
int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getKalem() {
return kalem;
}
public void setKalem(String kalem) {
this.kalem = kalem;
}
}
ArrayList:
sqliteHelper helper = new sqliteHelper(getApplicationContext());
ArrayList<Income> liste=helper.getAllIncome();
sqliteHelper=newsqlitehelper(getApplicationContext());
ArrayList liste=helper.getAllIncome();
试试这个
private ListView lv;
public void onCreate(Bundle saveInstanceState) {
setContentView(R.layout.your_layout);
lv = (ListView) findViewById(R.id.your_list_view_id);
// Instanciating an array list (you don't need to do this,
// you already have yours).
sqliteHelper helper = new sqliteHelper(getApplicationContext());
ArrayList<Income> your_array_list = helper.getAllIncome();
// This is the array adapter, it takes the context of the activity as a
// first parameter, the type of list view as a second parameter and your
// array as a third parameter.
ArrayAdapter<Income> arrayAdapter = new ArrayAdapter<Income>(
this,
android.R.layout.simple_list_item_1,
your_array_list );
lv.setAdapter(arrayAdapter);
}
私有ListView lv;
创建公共void(Bundle saveInstanceState){
setContentView(R.layout.your_布局);
lv=(ListView)findViewById(R.id.your\u list\u view\u id);
//实例化数组列表(无需执行此操作,
//你已经有你的了)。
sqliteHelper=newSQLiteHelper(getApplicationContext());
ArrayList您的_数组_list=helper.getAllIncome();
//这是数组适配器,它将活动的上下文作为
//第一个参数,作为第二个参数的列表视图的类型,以及
//数组作为第三个参数。
ArrayAdapter ArrayAdapter=新的ArrayAdapter(
这
android.R.layout.simple\u list\u item\u 1,
您的_数组_列表);
低压设置适配器(阵列适配器);
}
构建适配器有两种方法:--
ListView ListView=(ListView)findViewById(R.id.);
ArrayList收入_数组_列表=;
ArrayAdapter ArrayAdapter=新的ArrayAdapter(
这
android.R.layout.simple\u list\u item\u 1,
收入(数组)(列表);;
setAdapter(arrayAdapter);
私有类IncomeListAdapter扩展BaseAdapter{
ArrayList MDisplayedValue;
充气机;
公共IncomalistAdapter(上下文){
//TODO自动生成的构造函数存根
MDisplayedValue=;
充气器=(充气器)上下文
.getSystemService(上下文布局\充气机\服务);
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回mDisplayedValues.size();
}
@凌驾
公共对象getItem(int arg0){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回0;
}
@凌驾
公共视图getView(最终整型位置,视图转换视图,
视图组(父级){
//TODO自动生成的方法存根
视图v=转换视图;
视窗座;
如果(v==null){
v=充气机充气(R.layout.listrow\u收入,空);
holder=新的ViewHolder();
holder.tvTutar=(文本视图)v
.findviewbyd(R.id.tvTutar);
holder.tvId=(TextView)v.findViewById(R.id.tvId);
v、 setTag(支架);
}否则
holder=(ViewHolder)v.getTag();
holder.tvTutar.setText(mDisplayedValues.get(position.getTutar());
holder.tvId.setText(mDisplayedValues.get(position.getId());
返回v;
}
类视图持有者{
文本视图tvTutar;
文本视图tvId;
}
}
listrow_income.xml:--
您需要的是一个自定义适配器。谷歌的定制适配器,你会发现许多例子阅读Android指南和教程,有很多关于这个主题。
SimpleCursorAdapter
ArrayAdapter,etc
ListView listView = (ListView) findViewById(R.id.<list_view_id>);
ArrayList<Income> income_array_list = <get the arraylist from whatever sources>;
ArrayAdapter<Income> arrayAdapter = new ArrayAdapter<Income>(
this,
android.R.layout.simple_list_item_1,
income_array_list );
listView.setAdapter(arrayAdapter);
private class IncomeListAdapter extends BaseAdapter {
ArrayList<Income> mDisplayedValues;
LayoutInflater inflater;
public IncomeListAdapter(Context context) {
// TODO Auto-generated constructor stub
mDisplayedValues = <your_Income_list>;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mDisplayedValues.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
View v = convertView;
ViewHolder holder;
if (v == null) {
v = inflater.inflate(R.layout.listrow_income, null);
holder = new ViewHolder();
holder.tvTutar = (TextView) v
.findViewById(R.id.tvTutar);
holder.tvId = (TextView) v.findViewById(R.id.tvId);
v.setTag(holder);
} else
holder = (ViewHolder) v.getTag();
holder.tvTutar.setText(mDisplayedValues.get(position).getTutar());
holder.tvId.setText(mDisplayedValues.get(position).getId());
return v;
}
class ViewHolder {
TextView tvTutar;
TextView tvId;
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:gravity="center"
android:orientation="horizontal"
android:padding="8dp" >
<TextView
android:id="@+id/tvTutar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#323232" />
<TextView
android:id="@+id/tvId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white" />
</LinearLayout>