Closed qssq666123 closed 7 years ago
indexableLayout = (IndexableLayout) findViewById(R.id.indexablelayout);
indexableLayout.setCompareMode(IndexableLayout.MODE_ALL_LETTERS);
indexableLayout.setOverlayStyle_MaterialDesign(Color.RED);
adapter = new SingerIndexAdapter();
// 排序过程是异步的 另有setDatas(mDatas,IndexCallback callback) // callback在datas异步排序结束后回调
// 另有setOnItemTitleClickListener(listener),点击TitleItem点击事件以及LongClick
adapter.setOnItemContentClickListener(new IndexableAdapter.OnItemContentClickListener<SingerModel>() {
@Override
public void onItemClick(View v, int originalPosition, int currentPosition, SingerModel entity) {
ToastUtils.showToast("点击了" + entity);
}
});
indexableLayout.setAdapter(adapter);
queryData(Urls.SINGER_LIST, true, new NetQuestTask.SimpleRequestDataListener<String>() {
@Override
public void onSuccess(String str) {
JSONObject jsonObject = JSON.parseObject(str);
List<SingerModel> models = JSON.parseArray(jsonObject.getString(Constants.MODEL_KEY), SingerModel.class);
adapter.setDatas(models, new IndexableAdapter.IndexCallback<SingerModel>() {
@Override
public void onFinished(List<EntityWrapper<SingerModel>> datas) {
Log.d(TAG, "DATAS" + datas);
}
});
}
@Override
public void onFail(String str) {
Log.d(TAG, "QUERY FAIL " + str);
}
});
@JSONField(serialize = false)
private String string;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getFansnum() {
return fansnum;
}
public void setFansnum(int fansnum) {
this.fansnum = fansnum;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getFace() {
return face;
}
public void setFace(String face) {
this.face = face;
}
private int id;// "3105",
private int fansnum;// "0"
private String nickname;// "吴芊仪",
private String title;// "深圳大学金钟音乐学院",
private String face;// "http;////api.buyao.tv/user/201702/20170206120853.jpg",
@Override
public String getFieldIndexBy() {
return nickname;
}
@Override
public void setFieldIndexBy(String indexField) {
this.nickname=indexField;
}
@Override
public void setFieldPinyinIndexBy(String pinyin) {
string =pinyin;
}
大神啥时候上线啊,我快气吐血了,搞半天没看出问题,主要的就是那个回调断点无效,根本没法找问题
你贴的代码 没有看到调用 adapter.setDatas(mDatas, IndexCallback)
的代码;
Demo正常的话,比对下Demo的使用方式; 以及确保用的最新版本
@YoKeyword 有调用呀 queryData 回调里面 ,确实回调了,我发誓。但是 问题 是页面空白,以及 您代码execute回调无法断点,只能追踪到那里,所以 我搞了1个小时放弃了,求大神指点指点到底哪里问题。看不到问题真的很头大 我是jcenter下载的 直接把arr,以及souce.jar全部下载了indexablerecyclerview-1.0.9.aar
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="true"
android:fitsSystemWindows="true"
android:orientation="vertical">
<me.yokeyword.indexablerv.IndexableLayout
android:id="@+id/indexablelayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:indexBar_background="#ff0"
app:indexBar_layout_width="24dp"
app:indexBar_selectedTextColor="#f33737"
app:indexBar_textColor="#000000"
app:indexBar_textSize="14sp"
app:indexBar_textSpace="6dp"></me.yokeyword.indexablerv.IndexableLayout>
</LinearLayout>
/**
* Created by 情随事迁(qssq666@foxmail.com) on 2017/2/7.
*/
public class SingerIndexAdapter extends IndexableAdapter<SingerModel> {
@Override
public RecyclerView.ViewHolder onCreateTitleViewHolder(ViewGroup parent) {
return new SingerIndexHeadViewHolder(LayoutInflater.from(AppContext.getInstance()).inflate(R.layout.view_item_singer_index_head, parent, false));
}
@Override
public SingerIndexViewHolder onCreateContentViewHolder(ViewGroup parent) {
return new SingerIndexViewHolder(LayoutInflater.from(AppContext.getInstance()).inflate(R.layout.view_item_singer_index, parent, false));
}
@Override
public void onBindTitleViewHolder(RecyclerView.ViewHolder holder, String indexTitle) {
SingerIndexHeadViewHolder headViewHolder = (SingerIndexHeadViewHolder) holder;
headViewHolder.tvTitle.setText(indexTitle);
}
@Override
public void onBindContentViewHolder(RecyclerView.ViewHolder holder, SingerModel entity) {
SingerIndexViewHolder holder1 = (SingerIndexViewHolder) holder;
holder1.tvFansCount.setText("" + entity.getFansnum());
holder1.tvName.setText("" + entity.getNickname());
ImageLoader.getInstance().displayImage(entity.getFace(), holder1.ivHead, ImageUtil.getOptions());
}
}
哦哦 看到了 我模拟你的代码看下~ 不用急 =。=
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal">
<com.buyao.tv.ui.CircleImageView
android:id="@+id/iv_head"
android:layout_width="@dimen/singer_size"
android:layout_height="@dimen/singer_size"
android:src="@drawable/ico_head_default" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tv_name"
style="@style/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/loading" />
<TextView
android:id="@+id/tv_fans_count"
style="@style/fans"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/loading" />
</LinearLayout>
我怀疑过高度 ,可是adapter里面的onCretaeHolder都没调用,头大
这里断点是否可以走进去 ?
mFuture = mExecutorService.submit(new Runnable() {
@Override
public void run() {
// 这里断点是否可以走进去 ?
final ArrayList<EntityWrapper> datas = transform(mIndexableAdapter.getItems());
....
});
对 ,就是这里没法继续了,你这搞的我头大了,问题都不好查 佩服您是怎么写出来的。如果不能断点 - -
怎么不能断点... 你的情况是压根没走, 正常是走进去的~ 你的情况我模拟了下,没什么问题;
你检查下public void onSuccess(String str){}
的回调确认执行了吗? 以及回调解析后的数据models的完整性
真执行了,我都调试过的,模型数据也是完整的 有数据 ,就那个地方没法进去
这个项目n个地方这样写了 ,唯独这个东西 出毛病看不到效果 就是空白。。
而且那句话也走了呀,调试到你刚刚那个方法就没法继续了。 as断点下不了 不是x也不是勾
现在都可以下了,。
进行之后没能出来了。transform
既然进去了, 你先调试下看看~
import com.github.promeg.pinyinhelper.Pinyin; 这个类源码是红色的
没法追踪了 就是getPinYin飞掉了
问题就出在PinYin.toPin**这个 PinYin是红色的 源码 你的 jcenter下载的, 但是你是如何做到编译的,as为何又不报错。。
该库是依赖TinyPinyin库的, 以compile方式,而不是provided方式, 所以如果编译正常的话,TinyPinyin库是存在的
你看下External Libraries里是否有TinyPinyin-1.0.0
我已经明白了你提交到jcenter的有问题,我成了试验品 5555555555
我是直接下载你的arr,有毛病。。
.... 我的天 你为何要下载aar..... 你还在用eclipse?
如果你使用的是AS,这样即可....
你不知道github下载很慢么,另外 用 comp**估计也一样 因为原理就是使用哪个,而我是用arr 是因为有时候没网 很烦的,不小心clear的话,最近我爱上直接下载arr+souce.jar了。
另外希望您研究下QQ音乐的那个,就是 字母不显示只显示在顶部。 嗯 你那个compile原理就是从jcenter下载你能正常跑是因为你是直接使用本地的吧。
以前习惯下载github源码,但是就是下载慢。。
原理不同的,compile 一旦你下载好,Gradle就会帮你缓存起来,不必再从远程下载;
aar并不能解决依赖关系, compile内部是gradle机制,会去下载依赖链的~
作为程序员 用个梯子吧~
另外这些库不是从github上下载的,是从jcenter上下载的,不翻墙速度也是挺快的
QQ音乐的那个 回头有空我看下吧
这就蛋疼了。 已comp*的方式按理说我也就不需要修改呀,另外如果使用pro**编译的话 我这里的源码也是不完整的怎么理解,是不是你把lib jar包 没提交吧。 您看看我认为是您没提交lib/ jar包
按README集成下就行了~ 建议你可以找些Gradle相关的资料看看, compile的代码是放到外部库里的:
嗯 好的谢谢,我现在用github直接下载导入模块成功解决了上面问题。
最后打扰下,大神 的github下载不卡吗?我用了收费的greeen绿豆下载体验还是一样 几k,但是谷歌打开还可以。
我上传项目都是用 oschina,速度很快
Github浏览没啥问题 上传下载建议还是挂VPN~ 挂VPN还慢的话 应该是VPN节点问题~
大神用的是什么vpn我也想弄一个 这太受罪了
以及搞了1个小时了这样下去我想放弃了