Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从活动获取值到自定义数组适配器_Java_Android_Android Adapter - Fatal编程技术网

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类。我从这里得到了解决方案:无需回复