根据此example更改代码。 相关文件如下所示。 我没有使用该示例的imageicon部分,因为我不需要它。
Pending.java
public class Pending {
public String title;
public Pending(){
super();
}
public Pending(String title) {
super();
this.title = title;
}
}
PendingAdatapter.java
public PendingAdapter(Context context, int layoutResourceId, Pending[] data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
PendingHolder holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new PendingHolder();
holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle);
row.setTag(holder);
}
else
{
holder = (PendingHolder)row.getTag();
}
Pending weather = data[position];
holder.txtTitle.setText(weather.title);
return row;
}
static class PendingHolder
{
TextView txtTitle;
}
MainActivity.java
WayDataBase way1=new WayDataBase(Dashboard.this);
Pending weather_data[] = new Pending[]
{
new Pending(way1.returnFormName().toString())
};
PendingAdapter adapter = new PendingAdapter(this,
R.layout.listview_item_row, weather_data);
lstvw=(ListView)findViewById(R.id.forms_list);
View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
lstvw.addHeaderView(header);
lstvw.setAdapter(adapter);
数据库的 returnFormname函数
public ArrayList<String> returnFormName()
{
openOrCreateDatabase();
createlandtTable();
createrefertable();
createassettable();
createofficeusetable();
ArrayList<String> form = new ArrayList<String>();
int appcount=0,refercount=0,assetcount=0,officecount=0;
appcount=db.rawQuery("select * from "+TableNameis+";" ,null).getCount();
refercount=db.rawQuery("select * from "+ReferenceTable+";" ,null).getCount();
assetcount=db.rawQuery("select * from "+AssetTable+";" ,null).getCount();
officecount=db.rawQuery("select * from "+OfficeUse+";" ,null).getCount();
if(appcount==0)
{
form.add("Applicant");
}
if(refercount==0)
{
form.add("Reference");
}
if(assetcount==0)
{
form.add("Asset Details");
}
if(officecount==0)
{
form.add("Office Use");
}
return form;
}
答案 0 :(得分:0)
您的问题就在这一行formname.add(way1.returnFormName().toString());
。我不知道WayDataBase
返回什么,但您要做的是将way1
中的每个值添加到formname
。你所做的是以String形式返回对象way1.returnFormName()
的单个表示,这就是toString()
所做的。
从way1.returnFormName()
获取每个值,并将其自身添加到formname
。
注意:要将int
或double
转换为String
,只需将空字符串连接到它。防爆。
int number = 5;
String some;
some = number +"";
答案 1 :(得分:0)
像这样更改你的代码
<强> MainActivity.java 强>
WayDataBase way1=new WayDataBase(Dashboard.this);
ArrayList<String> weather_data = way1.returnFormName();
PendingAdapter adapter = new PendingAdapter(this, R.layout.listview_item_row, weather_data);
lstvw=(ListView)findViewById(R.id.forms_list);
View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
lstvw.addHeaderView(header);
lstvw.setAdapter(adapter);
<强> PendingAdatapter.java 强>
public PendingAdapter(Context context, int layoutResourceId, ArrayList<String> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
PendingHolder holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new PendingHolder();
holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle);
row.setTag(holder);
}
else
{
holder = (PendingHolder)row.getTag();
}
holder.txtTitle.setText(data.get(position));
return row;
}