- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
RecyclerView 没有调用 onCreate 或 onBind 或构造函数。没有断点命中或日志。可能是什么原因?可能是什么原因?任何人如何解决这个问题?这是我的代码。适配器:
public class MainContentRecyclerAdapter extends RecyclerView.Adapter<MainContentRecyclerAdapter.MainContentViewHolder> {
private Context context;
private LayoutInflater inflater;
private VolleySingleton volleySingleton;
private ImageLoader imageLoader;
List<Item> items = new ArrayList<Item>();
public MainContentRecyclerAdapter(Context context) {
this.context = context;
inflater = LayoutInflater.from(context);
volleySingleton = VolleySingleton.getSingletonInstance();
imageLoader = volleySingleton.getImageLoader();
}
public void setData(List<Item> items) {
this.items = items;
notifyItemRangeChanged(0,items.size());
}
@Override
public MainContentViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
Log.e("Sony","onCreateViewHolder");
View view = inflater.inflate(R.layout.cart_item, parent, false);
MainContentViewHolder holder = new MainContentViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(final MainContentViewHolder holder, int position) {
Log.e("Sony","onBindViewHolder");
Item currentItem = items.get(position);
if (currentItem.imageURL != null) {
imageLoader.get(currentItem.imageURL, new ImageLoader.ImageListener() {
@Override
public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) {
Log.e("Sony","onResponseImage");
holder.itemImage.setImageBitmap(response.getBitmap());
}
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Sony","onErrorImage");
holder.itemImage.setImageResource(R.drawable.default_product);
}
});
}
}
@Override
public int getItemCount() {
return items.size();
}
class MainContentViewHolder extends RecyclerView.ViewHolder {
ImageView itemImage;
public MainContentViewHolder(View itemView) {
super(itemView);
itemImage = (ImageView) itemView.findViewById(R.id.imgItemPic);
}
}
}
这是我的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cardItemHolderRoot"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imgItemPic"
android:layout_width="@dimen/itemImageDimen"
android:layout_height="@dimen/itemImageDimen"
android:layout_centerVertical="true"
android:contentDescription="@string/productImage"
android:src="@drawable/default_product"
android:elevation="2dp"
android:focusableInTouchMode="false"
android:layout_marginTop="@dimen/loginWidgetTopMargin" />
</RelativeLayout>
创建时的 Activity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.appBar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
//Calls volleyLibrary to fetch images using google image search
getData("Sachin");
mainListView = (RecyclerView) findViewById(R.id.recyclerList);
mainListView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST));
mainListView.setHasFixedSize(true);
recyclerViewListAdapter = new MainContentRecyclerAdapter(this);
mainListView.setAdapter(recyclerViewListAdapter);
mainListView.setLayoutManager(new LinearLayoutManager(this));
}
最佳答案
我在你的代码中看到的唯一问题
@Override
public int getItemCount() {
return items.size();
}
items.size();始终返回 0
要在设置适配器后调用 getData 来解决此问题。
recyclerViewListAdapter = new MainContentRecyclerAdapter(this);
mainListView.setAdapter(recyclerViewListAdapter);
getData("Sachin");
同时更新你的
设置数据
public void setData(List<Item> items) {
this.items = items;
mRecyclerAdapter.notifyDataSetChanged();
}
或
public void setData(List<Item> items) {
this.items = items;
}
在您调用 setData 之后从您的主要 Activity 调用
mRecyclerAdapter.notifyDataSetChanged();
关于android - Recyclerview 不调用 onCreate 或 onBind 或构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28718091/
我正在编写一个带有绑定(bind)服务的基于服务的应用程序,但该服务的 onBind() 方法似乎从未被调用(使用 Toasts 和 Logs 对其进行测试)。 服务: import android.
我有一个远程服务,外部应用程序可以绑定(bind)到该服务。在某些情况下,我可能希望拒绝绑定(bind)。 According to the documentation , Return the co
我是安卓新手,我必须编写一个服务(在不同的进程上)来处理我的互联网通信功能,我查看了一些博客,发现使用 Messenger 我们可以在 Activity 和服务(在不同的进程上)之间进行通信, 我的问
我有一个关于 Android 服务的理解问题。我有一个执行后台 http 操作的服务和一个应该显示这些 http 操作的当前状态的 Activity 。 所以我实现了 Binder 接口(interf
使用 gingerbread 2.3.4 api lvl 10。 我在启动完成后启动服务。为此,我添加了一个启动服务的广播接收器。我在启动器中使用相同的服务。我试图通过向 Intent 添加额外的参数
我遇到了以下情况。我的应用程序中有一项服务。该 Activity 使用 startService() 启动它,以防止它在将来取消绑定(bind)时关闭。然后使用 bindService() 绑定(bi
一旦我开始搜索/过滤我的 recyclerview 列表结果,我就会不断从搜索适配器中的 onBind 方法中获取 IndexOutofBoundsException。这是异常(exception):
我希望只有某些应用程序可以执行绑定(bind)到服务。我可以通过服务中的适当代码阻止某些应用程序绑定(bind)到服务吗?例如,如果服务有一个允许的应用程序列表(即,一个简单的字符串数组及其包名称),
我正在尝试创建一个可绑定(bind)的粘性服务(我需要在后台对该服务持有的某些数据运行潜在的异步操作)。为此,我需要确保 onBind 始终在 onStartCommand 之后运行。有什么办法可以保
onBind() 方法的“绑定(bind)”操作与仅调用 onStartCommand() 有何不同? onStartCommand() “当另一个组件(例如 Activity )通过调用 start
我试图实现一个简单的 RecyclerView 示例,其中的项目交替着色 /image/BFmJi.jpg效果很好 如果没有 Framelayout,我们将获得清晰的着色代码,如第一张图片所示即元素以
警报不会触发,因为缺少 openClose() 函数并引发错误。 如何解除绑定(bind)或更好地删除 onclick 标签? $('.spoilertop').click(function(){
我目前正在使用适配器返回 2 个列表中的项目集,这样: private List mListResponseList; private List mMyEventsList; 现在,MyListRes
在我的应用程序中,我有一个用于播放 MP3 流音乐的服务。我启动它 (startService()) 并连接到它 (bindService()),因此当没有客户端连接时它不会停止。如果播放器暂停,我会
我有一项服务主要管理用于播放播客 的MediaPlayer 实例。一旦 Activity 绑定(bind)到服务,它就可以执行播放、暂停、停止等操作。我使用服务是因为我希望播客即使在 Activity
我的应用程序遇到了一个奇怪的问题。我有一个在后台运行的 LocationService。我管理其生命周期的方式是: 在 onResume 中,每个 Activity 都使用 bindService(i
如果我尝试使用 Context.bindService() 绑定(bind)到服务,并且该服务尚未运行/启动,我是否可以保证 onCreate那个Service肯定会在onBind之前被调用?我找不到
我正在尝试绑定(bind)服务,但 onBind() 总是返回 false。 这是ServiceConnection的代码- private ServiceConnection mConnection
RecyclerView 没有调用 onCreate 或 onBind 或构造函数。没有断点命中或日志。可能是什么原因?可能是什么原因?任何人如何解决这个问题?这是我的代码。适配器: public c
我正在尝试制作一个按钮来更改 Android Lollipop 中的中断过滤器(无、优先级、全部)。当我按下按钮时,日志显示 W/NotificationListenerService[Notif
我是一名优秀的程序员,十分优秀!