情况:
我有一个Android应用程序,用户可以在其中执行某些操作,并且这些操作应显示在Facebook的供稿中。动作有4种类型-成为朋友,关注某人,评论和评价。
我知道该怎么做(请参见下面的示例*)
我知道如何扩展BaseAdapter并自定义其getView方法,因此我可以创建一个自定义列表项,以后可以使用该列表项填充listview。示例-用户的朋友列表,其中包含他们的化身,他们的名字和每个按钮。
我不知道该怎么办,我向您寻求帮助
我不知道该如何针对最近发生的10个动作使供稿显示不同的自定义布局-这个家伙与那个家伙成为朋友,然后这个家伙给那个家伙打了分,然后这个家伙对那件事进行了评论...
我该如何实施?
*创建一个自定义可适配项目,然后用一堆项目填充列表视图的示例:
public class MyProfileFriendAdapter extends BaseAdapter {
private ArrayList<String> userNames = new ArrayList<String>();
private ArrayList<String> userAvatarPaths = new ArrayList<String>();
private ArrayList<Integer> userIds = new ArrayList<Integer>();
private Context context;
private LayoutInflater layoutInflater;
private ImageButton iMyFriendsFriendAvatarImage;
private TextView tvMyFriendsListFriendName;
private Button bMyFriendsMessage;
private Button bMyFriendsUnfriend;
public MyProfileFriendAdapter(Context context, ArrayList<String> userNames, ArrayList<String> userAvatarPaths, ArrayList<Integer> userIds){
this.context = context;
this.userNames = userNames;
this.userAvatarPaths = userAvatarPaths;
this.userIds = userIds;
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return userIds.size();
}
@Override
public Object getItem(int arg0) {
return userIds.get(arg0) ;
}
@Override
public long getItemId(int position) {
return userIds.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null) {
convertView = layoutInflater.inflate(R.layout.item_adapterable_my_profile_friend, parent, false);
}
iMyFriendsFriendAvatarImage = (ImageButton) convertView.findViewById(R.id.iMyFriendsFriendAvatarImage);
tvMyFriendsListFriendName = (TextView) convertView.findViewById(R.id.tvMyFriendsListFriendName);
bMyFriendsMessage = (Button) convertView.findViewById(R.id.bMyFriendsMessage);
bMyFriendsUnfriend = (Button) convertView.findViewById(R.id.bMyFriendsUnfriend);
tvMyFriendsListFriendName.setText(userNames.get(position));
iMyFriendsFriendAvatarImage.setImageBitmap(BitmapFactory.decodeFile(userAvatarPaths.get(position)));
return convertView;
}
}
然后在拥有列表视图的活动中,我将执行以下操作:
listOfFriends = (ListView) findViewById(R.id.lvMyProfileFriendsHolder);
MyProfileFriendAdapter myProfileFriendAdapter = new MyProfileFriendAdapter(this, userNames, userAvatarPaths, userIds);
listOfFriends.setAdapter(myProfileFriendAdapter);
那么,根据用户在我的应用程序中执行的最后操作,当我需要在同一列表中使用各种不同的可适配器项时,该怎么办?
看看这个:
http://www.jiahaoliuliu.com/2012/08/android-list-view-with-different-views.html
这是一个简单的例子。有关更多信息,您可以查找getViewCount
&getItemViewType
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句