Closed dungockim closed 7 years ago
I see something wrong with your code: "java.lang.ClassCastException: kim.adapters.NuocUongAdapter cannot be cast to com.viethoa.RecyclerViewFastScroller$BubbleTextGetter"
Do you flowing exactly the document with 4 step?
Yes, i do.
build.gradle `dependencies { compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.android.support:recyclerview-v7:24.2.0'
compile 'com.google.firebase:firebase-database:9.0.2'
compile 'com.github.viethoa:fastscroller:1.2.0'
compile 'com.android.support:cardview-v7:24.2.0'
}`
2.. activity_main.xml ` ... <LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="80">
<android.support.v7.widget.RecyclerView
android:id="@+id/listNuocUong"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="90"/>
<com.viethoa.RecyclerViewFastScroller
android:paddingLeft="2dp"
android:layout_width="0dp"
android:id="@+id/fast_scroller"
android:layout_weight="10"
android:layout_height="match_parent"
/>
</LinearLayout>
...`
3.. MainActiviy.java
`fastScroller.setRecyclerView(recyclerView);
ArrayList<AlphabetItem> mAlphabetItems = new ArrayList<>();
List<String> stAlphabet = new ArrayList<>();
for (int i = 0; i < nuocUongList.size(); i++) {
String name = nuocUongList.get(i).getTen();
if (name == null || name.trim().isEmpty())
continue;
String word = name.substring(0, 1);
if (!stAlphabet.contains(word)) {
stAlphabet.add(word);
mAlphabetItems.add(new AlphabetItem(i, word, false));
}
}
fastScroller.setUpAlphabet(mAlphabetItems);
`
4.. implements method
`@Override
public String getTextToShowInBubble(int pos) {
if(pos < 0 || pos >= nuocUongList.size())
return null;
String name = nuocUongList.get(pos).getTen();
if(name == null || name.length() < 1)
return null;
return nuocUongList.get(pos).getTen().substring(0,1);
}`
i can't find the problem
I think the problem is your Adapter, Can you show me all the code of NuocUongAdapter?
this is my adapter:
`public class NuocUongAdapter extends RecyclerView.Adapter< NuocUongAdapter.MyViewHolder > { List< NuocUong > nuocUongList;
public NuocUongAdapter(List<NuocUong> nuocUongList){
this.nuocUongList = nuocUongList;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.nuoc_uong_item,parent,false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
DecimalFormat format = new DecimalFormat("###,###,###đ");
NuocUong nuocUong = nuocUongList.get(position);
holder.txtGia.setText(format.format(nuocUong.getGia()));
holder.chkNuocUong.setText(nuocUong.getTen());
holder.btnCong.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.txtSoLuong.setText((Integer.parseInt(holder.txtSoLuong.getText().toString()) + 1)+"");
}
});
holder.btnTru.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(Integer.parseInt(holder.txtSoLuong.getText().toString()) > 1)
holder.txtSoLuong.setText((Integer.parseInt(holder.txtSoLuong.getText().toString()) - 1)+"");
}
});
}
@Override
public int getItemCount() {
return nuocUongList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder{
TextView txtGia,txtSoLuong;
Button btnTru, btnCong;
CheckBox chkNuocUong;
public MyViewHolder(View itemView) {
super(itemView);
txtGia = (TextView) itemView.findViewById(R.id.txtGia);
txtSoLuong = (TextView) itemView.findViewById(R.id.txtSoLuong);
chkNuocUong = (CheckBox) itemView.findViewById(R.id.chkNuocUong);
btnTru = (Button) itemView.findViewById(R.id.btnTru);
btnCong = (Button) itemView.findViewById(R.id.btnCong);
}
}
}`
Can you set your Adapter extends RecyclerView.Adapter < NuocUongAdapter.MyViewHolder > and build again.
Can you speak Vietnamese?
Em có extends RecyclerView.Adapter < NuocUongAdapter.MyViewHolder > rồi mà post code lên nó ko hiển thị Anh ơi.
okie, teamViewer ha. Gửi ID và password qua skype cho anh nhak: kustupid
Sorry my English poor The Exception was showing when i touch recyclerview. How can i fix it?
java.lang.ClassCastException: kim.adapters.NuocUongAdapter cannot be cast to com.viethoa.RecyclerViewFastScroller$BubbleTextGetter at com.viethoa.RecyclerViewFastScroller.setRecyclerViewPositionWithoutScrolling(RecyclerViewFastScroller.java:173) at com.viethoa.RecyclerViewFastScroller.access$500(RecyclerViewFastScroller.java:29) at com.viethoa.RecyclerViewFastScroller$1.onScrolled(RecyclerViewFastScroller.java:126) at android.support.v7.widget.RecyclerView.dispatchOnScrolled(RecyclerView.java:4305) at android.support.v7.widget.RecyclerView.scrollByInternal(RecyclerView.java:1624) at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2704) at android.view.View.dispatchTouchEvent(View.java:9019) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2701) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2413) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2712) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2428) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2712) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2428) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2712) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2428) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2712) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2428) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2712) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2428) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2712) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2428) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2712) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2428) at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2679) at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1797) at android.app.Activity.dispatchTouchEvent(Activity.java:2878) at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:63) at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2640) at android.view.View.dispatchPointerEvent(View.java:9224) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4813) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4651) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4255) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4221) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4331) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4229) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4388) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4255) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4221) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4229) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6674) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6567) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6538) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6764) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176) at andr