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

时间:2018-03-13 17:28:55

标签: java android android-studio android-recyclerview recycler-adapter

异构RecyclerView

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

这里我要添加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 Class识别singleLineText和multiLineText?

1 个答案:

答案 0 :(得分:2)

您的LOGGING_CONFIG = { ... 'filename': '/path/to/my/log' ... } 存在问题。 if (modelList.get(position).IfSingleLine() != null)永远不会是IfSingleLine()。您想检查它是null还是true,而这不是您检查的方式。

将您的false更改为以下内容,您将从此功能获得正确的方向结果。

getItemViewType