如何检查视图中的 lastIndexposition
how to check the lastIndexposition in view
你好,在下面的代码中如何找到 friends[position].userName 的最后位置,然后如何比较它以及如何根据位置设置 holder.text1 的文本。
例如 friends[position] 它到达最后一个位置意味着然后到某个位置 friends[position].userName 值是 there.Now 我想占据这个持有人的下一个位置。text1.setText(groupdetails );值
谁能帮帮我
java
public class FriendList extends ListActivity
{
private static final int ADD_NEW_FRIEND_ID = Menu.FIRST;
private static final int CREATE_GROUP_ID = Menu.FIRST+1;
private static final int EXIT_APP_ID = Menu.FIRST + 2;
private IAppManager imService = null;
private FriendListAdapter friendAdapter;
String groupdetails;
public String ownusername = new String();
private class FriendListAdapter extends BaseAdapter
{
class ViewHolder {
TextView text,text1;
ImageView icon;
}
private LayoutInflater mInflater;
private Bitmap mOnlineIcon;
private Bitmap mOfflineIcon;
private FriendInfo[] friends = null;
public FriendListAdapter(Context context) {
super();
mInflater = LayoutInflater.from(context);
mOnlineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.greenstar);
mOfflineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.redstar);
}
public void setFriendList(FriendInfo[] friends)
{
this.friends = friends;
}
public int getCount() {
return friends.length;
}
public FriendInfo getItem(int position) {
return friends[position];
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null)
{
convertView = mInflater.inflate(R.layout.friend_list_screen,null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.text);
holder.text1 = (TextView) convertView.findViewById(R.id.text1);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(friends[position].userName);
if((friends[position]).userName.length()>18)
{
holder.text1.setVisibility(View.VISIBLE);
holder.text1.setText(groupdetails);
}
holder.icon.setImageBitmap(friends[position].status == STATUS.ONLINE ? mOnlineIcon : mOfflineIcon);
return convertView;
}
}
getView
方法仅根据 getCount
方法中的计数 return 显示列表中的行。
所以我认为您正在创建 class 构造函数,其中扩展了一些适配器。在 ArrayList 中再添加一个虚拟项,当前使用 Array use Arraylist:
ArrayList<FriendInfo> listFriends;
public void setFriendList(FriendInfo[] friends)
{
this.listFriends=new ArrayList<FriendInfo>(Arrays.asList(friends));
FriendInfo objectGroup=new FriendInfo();
objectGroup.userName=groupdetails;
listFriends.add(objectGroup);
}
现在在适配器中使用 listFriends
而不是 friends
,就像在 getCount()
、getItem
方法中一样。 ListView 将在 ListView 的最后一行显示 groupdetails
。
你好,在下面的代码中如何找到 friends[position].userName 的最后位置,然后如何比较它以及如何根据位置设置 holder.text1 的文本。
例如 friends[position] 它到达最后一个位置意味着然后到某个位置 friends[position].userName 值是 there.Now 我想占据这个持有人的下一个位置。text1.setText(groupdetails );值
谁能帮帮我
java
public class FriendList extends ListActivity
{
private static final int ADD_NEW_FRIEND_ID = Menu.FIRST;
private static final int CREATE_GROUP_ID = Menu.FIRST+1;
private static final int EXIT_APP_ID = Menu.FIRST + 2;
private IAppManager imService = null;
private FriendListAdapter friendAdapter;
String groupdetails;
public String ownusername = new String();
private class FriendListAdapter extends BaseAdapter
{
class ViewHolder {
TextView text,text1;
ImageView icon;
}
private LayoutInflater mInflater;
private Bitmap mOnlineIcon;
private Bitmap mOfflineIcon;
private FriendInfo[] friends = null;
public FriendListAdapter(Context context) {
super();
mInflater = LayoutInflater.from(context);
mOnlineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.greenstar);
mOfflineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.redstar);
}
public void setFriendList(FriendInfo[] friends)
{
this.friends = friends;
}
public int getCount() {
return friends.length;
}
public FriendInfo getItem(int position) {
return friends[position];
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null)
{
convertView = mInflater.inflate(R.layout.friend_list_screen,null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.text);
holder.text1 = (TextView) convertView.findViewById(R.id.text1);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(friends[position].userName);
if((friends[position]).userName.length()>18)
{
holder.text1.setVisibility(View.VISIBLE);
holder.text1.setText(groupdetails);
}
holder.icon.setImageBitmap(friends[position].status == STATUS.ONLINE ? mOnlineIcon : mOfflineIcon);
return convertView;
}
}
getView
方法仅根据 getCount
方法中的计数 return 显示列表中的行。
所以我认为您正在创建 class 构造函数,其中扩展了一些适配器。在 ArrayList 中再添加一个虚拟项,当前使用 Array use Arraylist:
ArrayList<FriendInfo> listFriends;
public void setFriendList(FriendInfo[] friends)
{
this.listFriends=new ArrayList<FriendInfo>(Arrays.asList(friends));
FriendInfo objectGroup=new FriendInfo();
objectGroup.userName=groupdetails;
listFriends.add(objectGroup);
}
现在在适配器中使用 listFriends
而不是 friends
,就像在 getCount()
、getItem
方法中一样。 ListView 将在 ListView 的最后一行显示 groupdetails
。