gpt4 book ai didi

android - MikePenz FastAdapter 用法

转载 作者:行者123 更新时间:2023-11-29 14:43:45 25 4
gpt4 key购买 nike

我正在尝试实现 fastadapter。我只是复制了示例代码并试图让它工作。当我试用它时,它在我的回收站 View 中没有显示任何内容。通过调试,我发现 bindView() 没有被调用。

我的 SampleItem.jave

public class SimpleItem extends AbstractItem<SimpleItem, SimpleItem.ViewHolder> {
public StringHolder name;
public StringHolder description;

//The unique ID for this type of item
@Override
public int getType() {
return (int) System.currentTimeMillis();
}

//The layout to be used for this type of item
@Override
public int getLayoutRes() {
return R.layout.sample_item;
}

@Override
public ViewHolder getViewHolder(@NonNull View v) {
return new ViewHolder(v);
}

public void setName(String name){
this.name = new StringHolder(name);
}

public void setDescription(String description){
this.description = new StringHolder(description);
}

@Override
public String toString() {
return String.valueOf(name.getText()) + description.getText();
}

/**
* our ViewHolder
*/
protected static class ViewHolder extends FastAdapter.ViewHolder<SimpleItem> {
@BindView(R.id.material_drawer_name)
TextView name;
@BindView(R.id.material_drawer_description)
TextView description;

public ViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}

@Override
public void bindView(SimpleItem item, List<Object> payloads) {
Log.d("onBind","bind view called"); //does not get called
StringHolder.applyTo(item.name, name);
StringHolder.applyToOrHide(item.description, description);
}

@Override
public void unbindView(SimpleItem item) {
name.setText(null);
description.setText(null);
}
}
}

我的 Activity

public class SampleActivity extends AppCompatActivity {
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_card_view);
ButterKnife.bind(this);
//create the ItemAdapter holding your Items
ItemAdapter itemAdapter = new ItemAdapter();
//create the managing FastAdapter, by passing in the itemAdapter
FastAdapter fastAdapter = FastAdapter.with(itemAdapter);

//set our adapters to the RecyclerView
recyclerView.setAdapter(fastAdapter);

ArrayList<SimpleItem> items = new ArrayList<>();
for (int i = 0 ; i < 20;i++){
SimpleItem simpleItem = new SimpleItem();
simpleItem.setName("this is a name");
simpleItem.setDescription("this is a description - " + i);
items.add(simpleItem);
}
Log.d("items:" , items.toString());
//set the items to your ItemAdapter
itemAdapter.add(items);
}
}

我的build.gradle

//for fastadapter
implementation "com.mikepenz:fastadapter:$rootProject.fastAdapterVersion@aar"
implementation "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:recyclerview-v7:$rootProject.supportLibraryVersion"
implementation "com.mikepenz:fastadapter-commons:$rootProject.fastAdapterVersion@aar"
implementation "com.mikepenz:fastadapter-extensions-expandable:$rootProject.fastAdapterVersion@aar"
implementation "com.mikepenz:fastadapter-extensions:$rootProject.fastAdapterVersion@aar"
implementation "com.android.support:design:$rootProject.supportLibraryVersion"
//The tiny Materialize library used for its useful helper classes - also needed for fastadapter
implementation "com.mikepenz:materialize:$rootProject.materializeVersion@aar"

//butterknife
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

带分机:

fastAdapterVersion = "3.2.4"
materializeVersion = "1.1.2"
supportLibraryVersion = '26.1.0'

提前感谢您的帮助。

最佳答案

你需要在 RecyclerView 中添加 LayoutManager。

LinearLayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);

关于android - MikePenz FastAdapter 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49095456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com