- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我查看了 SO 上关于此的其他问题,并逐字逐句匹配,但我一定错过了一些东西,因为没有任何效果。 getItemCount() 返回零,但我调试了我的数据列表,它似乎正确地添加了我的所有数据,所以与适配器的通信出现了问题。
请告诉我这里出了什么问题!
下面是我的 MainActivity.java 代码:
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import com.parse.FindCallback;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import com.parse.ParseUser;
import java.util.ArrayList;
import java.util.List;
public class Profile_Page extends ActionBarActivity {
UserLocalStore userLocalStore;
private RecyclerView recyclerView;
private DataAdapter adapter;
private Context context;
final LinearLayoutManager layoutManager = new LinearLayoutManager(this);
public List<Information> data = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile__page);
ParseUser currentUser = ParseUser.getCurrentUser();
String struser = currentUser.getUsername();
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
Button logoutBtn = (Button) findViewById(R.id.logOutBtn);
adapter = new DataAdapter(getApplicationContext(), getData());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
public List<Information> getData()
{
ParseQuery <ParseObject> query = ParseQuery.getQuery("ParseClassName");
query.whereEqualTo("author", ParseUser.getCurrentUser());
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException e) {
if (e == null) {
for (ParseObject getData : list) {
Information current = new Information();
current.thing= getData.getString("Thing");
data.add(current);
adapter.notifyDataSetChanged();
//for some reason, data isn't getting transferred to adapter
}
} else {
//something went wrong
}
}
});
return data;
}
public void logOut(View view)
{
// Logout current user
ParseUser.logOut();
finish();
}
}
数据适配器代码:
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.EditText;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DataAdapter extends RecyclerView.Adapter<DataAdapter.MyViewHolder>
{
private LayoutInflater inflater;
List<Information> data = Collections.emptyList();
public DataAdapter(Context context, List<Information> data)
{
inflater = LayoutInflater.from(context);
this.data= data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
View view = inflater.inflate(R.layout.recycler_view_layout, parent, false);
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position)
{
Information current = data.get(position);
holder.tv.setText(current.thing);
}
@Override
public int getItemCount()
{ Log.d("datasize", String.valueOf(data.size()));
return data.size();
}
class MyViewHolder extends RecyclerView.ViewHolder
{ TextView tv;
public MyViewHolder(View itemView) {
super(itemView);
tv= (TextView) itemView.findViewById(R.id.thingID);
}
}
}
信息.java
public class Information
{
public String thing;
}
Recycler_view_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dummy Text"
android:id="@+id/thingID"/>
</LinearLayout>
添加 RecyclerView 的 Activity:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.android.blah.Profile_Page"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:id="@+id/button3"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/recyclerView"
android:layout_alignEnd="@+id/recyclerView" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Log out"
android:id="@+id/logOutBtn"
android:layout_below="@+id/button3"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:onClick="logOut"
android:layout_marginTop="85dp" />
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height = "wrap_content"
android:id="@+id/recyclerView"
android:layout_alignTop="@id/logOutBtn" />
</RelativeLayout>
最佳答案
也许如果你在 done 方法中设置适配器它会起作用。插入底部 for 循环。
adapter = new DataAdapter(getApplicationContext(), data);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
关于java - RecyclerView 未被填充(getItemCount() 返回零),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31664492/
我遇到以下问题,不幸的是,我的应用程序在进入下一个 Activity 时停止了。罪魁祸首是: public class RecyclerAdapter extends RecyclerView.
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我调查了关于这个问题的几个 SO 答案(here、here、and here),但没有一个提议的解决方案有效。我的问题是没有显示我的 RecyclerView 列表项。我在 MessengerRecy
我有一个 recyclerView,它让我崩溃: 这是我的开始 Activity : public class StartActivity extends AppCompatActivity {
在您将问题标记为重复之前请阅读问题... 所以我正在尝试使用 Intent 从图库中选择多张图片。当我选择多于 1 张图片时,它工作正常,当我只选择 1 张图片时,它会生成此错误。我寻找了每个 Nul
我为 RecyclerView 创建了一个 FirebaseRecylerAdapter,我的问题是 FirebaseRecyclerAdapter 没有调用 onCreateViewHolder(因
我想在任何给定时间获取“Activity ”键的计数。现在根据 API 文档 getItemCount() 应该返回此值。 然而事实并非如此。过期的键不会减少 getItemCount() 的值。为什
我查看了 SO 上关于此的其他问题,并逐字逐句匹配,但我一定错过了一些东西,因为没有任何效果。 getItemCount() 返回零,但我调试了我的数据列表,它似乎正确地添加了我的所有数据,所以与适配
我创建了一个工作正常的适配器。现在,我需要计算适配器中数据项的数量。我正在使用函数 getItemcount() ,但我每次都得到 0。另外,我正在使用 Firebase 来处理我的数据库。 fi
我刚刚制作了一个回收器 View ,但它没有工作,所以我在 getItemCount 上设置了一个断点,但该方法没有被调用。我从未见过 SO 上的任何其他人有这个特定问题,我相信这是非常明显的事情。这
如果 RecyclerView 为空,我会尝试显示 TextView。但是 ListAdapter 的 getItemCount() 总是返回 0,即使 RecyclerView 显示项目也是如此。
RecyclerView 有一个 InfiniteScrollListener 并且在该监听器内部,在 OnScrolled() 方法中我计算可见项和总项数以检查是否应加载新项。当totalItemC
请调查一下,让我知道哪里出了问题。 public class MyAdapter extends RecyclerView.Adapter { private ItemData[] items
本文整理了Java中com.tc.admin.common.XComboBox.getItemCount()方法的一些代码示例,展示了XComboBox.getItemCount()的具体用法。这些代
本文整理了Java中org.jfree.data.xy.XYIntervalSeries.getItemCount()方法的一些代码示例,展示了XYIntervalSeries.getItemCoun
本文整理了Java中org.jfree.data.xy.YIntervalSeries.getItemCount()方法的一些代码示例,展示了YIntervalSeries.getItemCount(
我遇到了一个奇怪的错误,如果 getItemCount 返回 1(数据结构的大小),适配器不会显示任何卡片。 我的适配器代码 - public class SingleAdapter extends
我知道我的问题已被问过好几次,但我已经搜索了一段时间,但没有一个答案能解决我的问题。问题是,当我在我的“HomeFragment”中创建 recyclerview 适配器和方法“onViewCreat
我从使用 FlatList 切换到 VirtualizedList,并收到错误 this.props.getItemCount 不是函数。当我运行调试器时,VirtualizedList.js 抛出异
文档对 getItemCount() 的描述如下: Returns the number of items in the adapter bound to the parent RecyclerVie
我是一名优秀的程序员,十分优秀!