1

こんにちは、以下のコードでは、friends[position].userName の最後の位置を見つける方法と、それを比較する方法、および位置に基づいて holder.text1 のテキストを設定する方法を示しています。

たとえば、friends[position] は最後の位置に到達すると、いくつかの位置の friends[position].userName 値まで存在することを意味します。次の位置は、この holder.text1.setText(groupdetails); を占めたいと思います。値
誰でも私を助けることができます

ジャワ

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;
        }

    }
4

1 に答える 1

0

getViewメソッドは、メソッドから返された count の数に従ってリストに行のみを表示しますgetCount

だから私はあなたがアダプターを拡張するクラスコンストラクターを作成していると考えています。ArrayList にダミー項目をもう 1 つ追加し、現在 Array を使用している場合は 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);
  }

今では、メソッドのように AdapterlistFriendsの代わりに使用します。ListView はListView の最後の行に表示されます。friendsgetCount()getItemgroupdetails

于 2015-02-13T11:33:36.593 に答える