繁体   English   中英

如何将当前数据从适配器传递到适配器?

[英]How to pass current data from Adapter to Adapter?

异构回收器视图

朋友你好我有一个简单的疑问

在这里我要添加singleLineText

`addSingleLine.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String singleLineText = singleline.getText().toString();
            if(singleLineText.length() != 0)
            {
                mAdapter.addItem(singleLineText,null);
                mAdapter.notifyDataSetChanged();
                Log.e(TAG,"adding single line text");
            }
            singleline.getText().clear();
        }
    });`

在这一部分,我要添加MultiLineText

` addMultiLine.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String multiLineText = multiline.getText().toString();
            String myList[] = multiLineText.split(",");
            for(String item : myList)
            {
                mAdapter.addItem(null,item);
                mAdapter.notifyDataSetChanged();
                Log.e(TAG,"adding multi line text");
            }
            multiline.getText().clear();
        }
    });
}`

我的适配器部分代码:

` public void addItem(String singleLineText, String item) {
    Model model = new Model();
    if(item == null) {
        model.setText1(singleLineText);
        model.settingSingleLineText(true); // How to identify single line
    }
    else
    {
        model.setText2(item);
        model.settingMultiLineText(true); // How to identify multiple line
    }
    modelList.add(model);
}`

GetViewType方法:

` public int getItemViewType(int position) {
   if (modelList.get(position).IfSingleLine() != null)
        return VERTICAL;
    else {
        return HORIZONTAL;
    }
}`

模型类代码段:

private Boolean checkSingleLine = null;

public Boolean IfSingleLine()
{
    return checkSingleLine;
}
public void settingSingleLineText(Boolean txt1)
{
    checkSingleLine = txt1;
}
public void settingMultiLineText(Boolean txt2)
{
    checkMultiLine = txt2;
}   

` 问题:如何通过使用Model类来识别singleLineText和multiLineText?

您的if (modelList.get(position).IfSingleLine() != null) IfSingleLine()永远不会为null 您想检查它是true还是false ,这不是您检查的方式。

将您的getItemViewType更改为以下内容,您将通过此函数获得正确的定向结果。

public int getItemViewType(int position) {
   if (modelList.get(position).IfSingleLine())
        return VERTICAL;
    else {
        return HORIZONTAL;
    }
}`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM