列表视图与ArrayList的android系统 - 每行2项 [英] listview with arraylist in android - each row 2 items
本文介绍了列表视图与ArrayList的android系统 - 每行2项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我这个填补DB我的数组列表:
db.addBookMark(新书签(拉维,91亿));
db.addBookMark(新的书签(SRINIVAS,9199999999));
db.addBookMark(新的书签(汤米,9522222222));
db.addBookMark(新的书签(KARTHIK,9533333333));
和本读取(从数据库中的所有项目):
//读取所有联系人
清单<书签及GT;书签= db.getAllBookMarks();
和我创建一个XML布局listview.xml
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=垂直
工具:上下文=com.wepars.webapp.activity.MsgActivity> <包括
机器人:ID =@ + ID / tool_bar
布局=@布局/ tool_bar
机器人:layout_height =WRAP_CONTENT
机器人:layout_width =match_parent
/>
< ListView控件
机器人:ID =@ + ID / list_view
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT>< /&的ListView GT;< / LinearLayout中>
和还行项目row_item.xml
<?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=垂直> <的TextView
机器人:ID =@ + ID /消息
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
/> <的TextView
机器人:ID =@ + ID /号码
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
/>< / LinearLayout中>
我读<一个href=\"http://stackoverflow.com/questions/18628831/listview-with-arraylist-simple-adapter-in-android\">this问题 before..But它适用于一个简单的列表。我怎么能发表我的2钻石名单列表视图?
我试图完成这个code:
公共类BookMarkActivity扩展ActionBarActivity {
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.listview); DatabaseBookMark DB =新DatabaseBookMark(本);
Log.d(插入,插入..);
db.addBookMark(新的书签(拉维,91亿));
db.addBookMark(新的书签(SRINIVAS,9199999999));
db.addBookMark(新的书签(汤米,9522222222));
db.addBookMark(新的书签(KARTHIK,9533333333));
//读取所有联系人
清单&LT;书签及GT;书签= db.getAllBookMarks(); }
}
解决方案
您必须扩展一个ArrayAdapter
公共类BookmarkAdapter扩展ArrayAdapter&LT;书签及GT; { 公共BookmarkAdapter(活动活动,
ArrayList的&LT;收藏书签){
超(活动,R.layout.row_item,书签);
} @覆盖
公共查看getView(INT位置,查看convertView,父母的ViewGroup){
最终收藏B =的getItem(位置);
ViewHolder viewHolder;
如果(convertView == NULL){
viewHolder =新ViewHolder();
LayoutInflater充气= LayoutInflater.from(的getContext());
convertView = inflater.inflate(R.layout.row_item,父母,
假);
viewHolder.message =(TextView中)convertView.findViewById(R.id.message);
viewHolder.number =(TextView中)convertView
.findViewById(R.id.number);
convertView.setTag(viewHolder);
}其他{
viewHolder =(ViewHolder)convertView.getTag();
} viewHolder.message.setText(b.message);
viewHolder.number.setText(b.number);
返回convertView;
} 私有类ViewHolder {
TextView的消息,编号;
}
}
和使用它像这样
公共类BookMarkActivity扩展ActionBarActivity {
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.listview); DatabaseBookMark DB =新DatabaseBookMark(本);
Log.d(插入,插入..);
db.addBookMark(新的书签(拉维,91亿));
db.addBookMark(新的书签(SRINIVAS,9199999999));
db.addBookMark(新的书签(汤米,9522222222));
db.addBookMark(新的书签(KARTHIK,9533333333));
//读取所有联系人
ArrayList的&LT;书签及GT;书签= db.getAllBookMarks(); // 添加
LV的ListView =(ListView控件)findViewById(R.id.list_view);
lv.setAdapter(新BookmarkAdapter(这一点,书签)); }
}
I fill my Array list in DB by this:
db.addBookMark(new BookMark("Ravi", "9100000000"));
db.addBookMark(new BookMark("Srinivas", "9199999999"));
db.addBookMark(new BookMark("Tommy", "9522222222"));
db.addBookMark(new BookMark("Karthik", "9533333333"));
And read (all items from DB) by this:
// Reading all contacts
List<BookMark> bookmarks = db.getAllBookMarks();
and I create a xml layout listview.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.wepars.webapp.activity.MsgActivity">
<include
android:id="@+id/tool_bar"
layout="@layout/tool_bar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
/>
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></ListView>
</LinearLayout>
and also rows item row_item.xml
<?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="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/message"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/number"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
I read this question before..But it works for a simple list. how can I publish my 2 diamond list in listview?
I try complete this code:
public class BookMarkActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
DatabaseBookMark db = new DatabaseBookMark(this);
Log.d("Insert: ", "Inserting ..");
db.addBookMark(new BookMark("Ravi", "9100000000"));
db.addBookMark(new BookMark("Srinivas", "9199999999"));
db.addBookMark(new BookMark("Tommy", "9522222222"));
db.addBookMark(new BookMark("Karthik", "9533333333"));
// Reading all contacts
List<BookMark> bookmarks = db.getAllBookMarks();
}
}
解决方案
You have to extend an ArrayAdapter
public class BookmarkAdapter extends ArrayAdapter<BookMark> {
public BookmarkAdapter(Activity activity,
ArrayList<BookMark bookmark) {
super(activity, R.layout.row_item, bookmark);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final BookMark b = getItem(position);
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.row_item, parent,
false);
viewHolder.message= (TextView) convertView.findViewById(R.id.message);
viewHolder.number= (TextView) convertView
.findViewById(R.id.number);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.message.setText(b.message);
viewHolder.number.setText(b.number);
return convertView;
}
private class ViewHolder {
TextView message, number;
}
}
and use it like this
public class BookMarkActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
DatabaseBookMark db = new DatabaseBookMark(this);
Log.d("Insert: ", "Inserting ..");
db.addBookMark(new BookMark("Ravi", "9100000000"));
db.addBookMark(new BookMark("Srinivas", "9199999999"));
db.addBookMark(new BookMark("Tommy", "9522222222"));
db.addBookMark(new BookMark("Karthik", "9533333333"));
// Reading all contacts
ArrayList<BookMark> bookmarks = db.getAllBookMarks();
// ADDED
ListView lv = (ListView) findViewById(R.id.list_view);
lv.setAdapter(new BookmarkAdapter(this,bookmarks));
}
}
这篇关于列表视图与ArrayList的android系统 - 每行2项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文