gpt4 book ai didi

android - 在 Android 中为 ArrayList 设置自定义适配器

转载 作者:行者123 更新时间:2023-11-29 14:37:21 25 4
gpt4 key购买 nike

我正在尝试为我的 Activity 实现自定义适配器,它将从两个 ArrayLists 填充 ListView 。但是我完全不知道下一步该怎么做?这是我的代码:

public class Offers extends Activity 
{
ListView latesttrans;
Boolean flagValue = false;

ArrayList<String> listItems = new ArrayList<String>();
ArrayList<String> listAddress = new ArrayList<String>();
String[] addr;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_offers);
latesttrans = (ListView) findViewById(R.id.listView1);

Uri latesttransuri = Uri.parse("content://sms/inbox");
Cursor latesttranscursor = getContentResolver().query(latesttransuri, new String[]{"_id","address","date","body"}, null, null, null);

if(flagValue == false)
{
latesttranscursor.moveToFirst();
flagValue = true;
}

String address = null,body = null;
int i=0;

while(latesttranscursor.moveToNext())
{
address=latesttranscursor.getString(1);
long date = latesttranscursor.getLong(2);
String sdate = millisToDate(date);
body = latesttranscursor.getString(3);

if(body.contains("FREE"))
{
listItems.add(i,body);
listAddress.add(i,address);
i++;
}
else if(body.contains("unlimited"))
{
listItems.add(i,body);
listAddress.add(i,address);
i++;
}
else if(body.contains("unlimited"))
{
listItems.add(i,body);
listAddress.add(i,address);
i++;
}
else if(body.contains("OFF"))
{
listItems.add(i,body);
listAddress.add(i,address);
i++;
}
else if(body.contains("off"))
{
listItems.add(i,body);
listAddress.add(i,address);
i++;
}
else if(body.contains("lowest"))
{
listItems.add(i,body);
listAddress.add(i,address);
i++;
}
else if(body.contains("save"))
{
listItems.add(i,body);
listAddress.add(i,address);
i++;
}
else if(body.contains("CHEAPER"))
{
listItems.add(i,body);
listAddress.add(i,address);
i++;
}

}

latesttrans.setAdapter(new MyCustomAdapter(this));
}
public String millisToDate(long currentTime)
{
String finalDate;
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(currentTime);
Date date = calendar.getTime();
finalDate = date.toString();
return finalDate;
}
}

class SingleRow2
{
String title;
String description;
SingleRow2(String title, String description)
{
this.title=title;
this.description=description;
}
}
class MyCustomAdapter extends BaseAdapter
{
int i=0;
Boolean flagValue = false;
ArrayList<SingleRow2> list;
Context context;

public MyCustomAdapter(Offers offers)
{
// TODO Auto-generated constructor stub
}

public int getCount()
{
return list.size();
}

public Object getItem(int arg0)
{
// TODO Auto-generated method stub
return list.get(arg0);
}

public long getItemId(int position)
{
return position;
}
public View getView(int arg0, View arg1, ViewGroup viewGroup)
{
LayoutInflater inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.single_row_offers,viewGroup,false);

TextView addresstext = (TextView) row.findViewById(R.id.textViewSingleOffer1);
TextView bodytext = (TextView) row.findViewById(R.id.textViewSingleOffer2);


return (row);
}
}

我无法在这里实现 getView() 方法..任何人有什么想法吗?

最佳答案

你的适配器:

class TestAdapter extends BaseAdapter {

ArrayList<String> listItem;
ArrayList<String> listAddress;

Context mContext;
//constructor
public TestAdapter(Context mContext, ArrayList<String> listItem,
ArrayList<String> listAddress) {
this.mContext = mContext;
this.listItem = listItem;
this.listAddress = listAddress;
}

public int getCount() {
return listItem.size();
}

public Object getItem(int arg0) {
return null;
}

public long getItemId(int position) {
return position;
}

public View getView(int position, View arg1, ViewGroup viewGroup)
{
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.single_row_offers, viewGroup, false);

TextView addresstext = (TextView) row.findViewById(R.id.textViewSingleOffer1);
TextView bodytext = (TextView) row.findViewById(R.id.textViewSingleOffer2);

bodytext.setText(listItem.get(position));
addresstext.setText(listAddress.get(position));


return row;
}
}

latesttrans.setAdapter(new TestAdapter(this, listItem,listAddress));

关于android - 在 Android 中为 ArrayList 设置自定义适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28982984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com