Java 从活动获取值到自定义数组适配器
我正在创建聊天应用程序。所以我想增加一个用户从他的朋友那里收到的消息的数量。显示我创建了自定义的Java 从活动获取值到自定义数组适配器,java,android,android-adapter,Java,Android,Android Adapter,我正在创建聊天应用程序。所以我想增加一个用户从他的朋友那里收到的消息的数量。显示我创建了自定义的数组适配器,因为我的listview由朋友名和通知文本视图组成 因此,我的注册用户活动列表中有以下数据: 如何将此数据发送到自定义阵列适配器类以设置通知视图: 自定义阵列适配器类: public class CustomArrayAdapter extends ArrayAdapter<String> { private Context mContext; privat
数组适配器
,因为我的listview由朋友名和通知文本视图组成
因此,我的注册用户活动列表中有以下数据:
如何将此数据发送到自定义阵列适配器
类以设置通知视图:
自定义阵列适配器类:
public class CustomArrayAdapter extends ArrayAdapter<String> {
private Context mContext;
private int mRes;
private ArrayList<String> data;
private String numOfMsgs;
public CustomArrayAdapter(Context context, int resource,
ArrayList<String> objects) {
super(context, resource, objects);
this.mContext = context;
this.mRes = resource;
this.data = objects;
}
@Override
public String getItem(int position) {
// TODO Auto-generated method stub
return super.getItem(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
LayoutInflater inflater = LayoutInflater.from(mContext);
row = inflater.inflate(mRes, parent, false);
String currentUser = getItem(position);
TextView friendName = (TextView) row.findViewById(R.id.tvFriendName);
String Frndname = currentUser;
friendName.setText(Frndname);
TextView notificationView = (TextView) row.findViewById(R.id.tvNotif);
//here i wanted to get the data noOfMsgs
Toast.makeText(mContext, "noOfMsgs:" + numOfMsgs, Toast.LENGTH_LONG).show();
notificationView.setText(noOfMsgs);
return row;
}
}
公共类CustomArrayAdapter扩展了ArrayAdapter{
私有上下文;
私人内勤;
私有数组列表数据;
私有字符串numOfMsgs;
公共CustomArrayAdapter(上下文、int资源、,
ArrayList对象){
超级(上下文、资源、对象);
this.mContext=上下文;
this.mRes=资源;
这个数据=对象;
}
@凌驾
公共字符串getItem(int位置){
//TODO自动生成的方法存根
返回super.getItem(位置);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
LayoutFlater充气机=LayoutFlater.from(mContext);
row=充气机。充气(mRes,父项,假);
字符串currentUser=getItem(位置);
TextView friendName=(TextView)row.findViewById(R.id.tvFriendName);
字符串Frndname=currentUser;
设置文本(Frndname);
TextView notificationView=(TextView)row.findViewById(R.id.tvNotif);
//在这里,我想得到数据
Toast.makeText(mContext,“noofmgs:+numompgs,Toast.LENGTH_LONG).show();
notificationView.setText(noofmgs);
返回行;
}
}
您只需初始化适配器并将适配器连接到ListView
ArrayList<String> items = new ArrayList<>();
items.add(item1);
items.add(item2);
items.add(item3);
CustomArrayAdapter<String> itemsAdapter = new CustomArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
listview.setAdapter(itemsAdapter);
ArrayList items=new ArrayList();
增加(第1项);
增加(第2项);
增加(第3项);
CustomArrayAdapter itemsAdapter=新的CustomArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,items);
setAdapter(itemsAdapter);
您只需更新在CustomArrayAdapter中传递的列表对象,然后通知列表即可
adapter.notifyDataSetChanged()
当您将列表对象传递给适配器时,列表中的任何更改都将在对象“数据”中自动更新。您只需更新视图。我之前在oncreate()方法中的用户活动列表中做过这件事,我使用自定义格式获取视图,即R.layout.format\u friends\u list:listView=(listView)findViewById(R.id.listofReguers);arrayAdapter=new CustomArrayAdapter(registerDuserActivity.this,R.layout.format_friends_list,new ArrayList());setAdapter(arrayAdapter)@Leo但是您要传递给
CustomArrayAdapter
的字符串数组为空,您必须将您的项目添加到i检查用户活动图像列表i使用arrayadapter.addAll(set)函数的第二个。这里设置了来自firebase数据库的好友名称。我还想将noOfMsgs从Activity发送到CustomArray Adapter类。我从这里得到了解决方案:无需回复