小编Ore*_*reo的帖子

如何在RecyclerView中实现setOnScrollListener

当用户到达列表中可见的项目时,如何在底部显示进度条.

我编写了一个代码,我使用Web服务获取数据,现在我想填充部分记录,因为我的JSON中有大约630条记录.

这是我用来从JSON获取数据并填充到RecyclerView中的整个代码.

以下是我的JSON外观,但真正的JSON包含600多条记录:

 http://walldroidhd.com/api.php
Run Code Online (Sandbox Code Playgroud)

有人可以指导我在我的代码中进行更改吗?

我希望每当用户使用进度条滚动到底部时填充更多记录,我仍然显示所有记录.

RecyclerViewFragment.java:

public class RecyclerViewFragment extends Fragment {

    RecyclerView mRecyclerView;
    LinearLayoutManager mLayoutManager;
    RecyclerView.Adapter mAdapter;
    ArrayList<NatureItem> actorsList;

    private int previousTotal = 0;
    private boolean loading = true;
    private int visibleThreshold = 5;
    int firstVisibleItem, visibleItemCount, totalItemCount;

    public static RecyclerViewFragment newInstance() {
        return new RecyclerViewFragment();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_recyclerview_advance, container, false);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        actorsList = new …
Run Code Online (Sandbox Code Playgroud)

java onscrolllistener endlessscroll android-cardview android-recyclerview

35
推荐指数
4
解决办法
6万
查看次数

RecyclerView无限无限滚动问题

我正在尝试使用RecyclerView实现Endless Infinite Scrolling,但是我只获得了前10条记录,没有获得接下来的10条记录,甚至在尝试向下滚动时没有取得任何进展.

虽然我想要在滚动上获得接下来的10条记录等等......但只获得前10条记录

这里我上传了我的JSON 副本 - 但我无法从同一个网址获取数据,这就是我使用客户端的网址和本地主机的原因.

我正在学习教程

这是我的完整代码,我可以知道我在哪里做错了吗?

JSON:

{
  "names": [
    {
      "name": "Name 1"
    },
    {
      "name": "Name 2"
    },
    ....
    {
      "name": "Name 60"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

日志:

D/name -(13759): Name 1
D/name -(13759): Name 2
.......................
D/name -(13759): Name 60
Run Code Online (Sandbox Code Playgroud)

这是我更新的代码,我用它来解析JSON数据

MainActivity.java:更新

public class MainActivity extends AppCompatActivity {

private Toolbar toolbar;

private TextView tvEmptyView;
private RecyclerView mRecyclerView;
private DataAdapter mAdapter;
private LinearLayoutManager mLayoutManager;

private ArrayList<Student> studentList;

protected Handler handler;

@Override
protected void …
Run Code Online (Sandbox Code Playgroud)

android json infinite-scroll endlessscroll android-recyclerview

21
推荐指数
1
解决办法
1万
查看次数

错误:(27,0)在项目':app'中找不到带路径':library'的项目

我已经在项目的根目录中复制了这个 library文件夹但总是得到:

Error:(27, 0) Project with path ':library' could not be found in project ':app'.
<a href="openFile:/home/oreo/Projects/RippleSample/app/build.gradle">Open File</a>
Run Code Online (Sandbox Code Playgroud)

这是项目结构:

RippleSample
   > .gradle
   > .idea
   > app
   > gradle
   > library [just imported]
Run Code Online (Sandbox Code Playgroud)

android libs android-studio build.gradle android-gradle-plugin

17
推荐指数
3
解决办法
2万
查看次数

错误:此片段应提供默认构造函数(不带参数的公共构造函数)

我的课程扩展DialogFragment如下:

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {

    EditText editDate;
    private Calendar dateTime = Calendar.getInstance();
    private SimpleDateFormat dateFormatter = new SimpleDateFormat("dd MMMM yyyy");

    public DatePickerFragment(EditText editText) {
        editDate = editText;
    }

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Use the current date as the default date in the picker
    final Calendar c = Calendar.getInstance();
    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);
    int day = c.get(Calendar.DAY_OF_MONTH);

    // Create a new instance of DatePickerDialog and return it
    return …
Run Code Online (Sandbox Code Playgroud)

java android android-studio

15
推荐指数
2
解决办法
1万
查看次数

使用Material Design在工具栏中滑动选项卡

我一直在学习使用这篇文章使用Material Design来使用Sliding Tabs .我已成功地实现SlidingTabs 以下Toolbar,像这样的:

在此输入图像描述

但现在我想创建ActionBar/ToolBar Fragment选项卡 ......

android android-layout android-tabs material-design

14
推荐指数
1
解决办法
6498
查看次数

删除并更新现有日历事件

我正在遵循这个要点,进入insert事件Calendar

我如何update使用下面的代码插入我之前插入的日历事件:

public void addToCalender() throws ParseException {

        ......

        ContentValues event = new ContentValues();
        event.put(CalendarContract.Events.CALENDAR_ID, calendarId[0]);
        event.put(CalendarContract.Events.TITLE, "Event Title");
        event.put(CalendarContract.Events.DESCRIPTION, "Event Description");
        event.put(CalendarContract.Events.EVENT_LOCATION, "Eevnt Location");
        event.put(CalendarContract.Events.DTSTART, startCalTime);
        event.put(CalendarContract.Events.DTEND, endCalTime);
        event.put(CalendarContract.Events.STATUS, 1);
        event.put(CalendarContract.Events.HAS_ALARM, 1);
        event.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());

        Uri insertEventUri = AddEventActivity.this.getContentResolver().insert(
                eventsUri, event);

        ContentValues reminders = new ContentValues();
        reminders.put(Reminders.EVENT_ID,
                Long.parseLong(insertEventUri.getLastPathSegment()));
        reminders.put(Reminders.METHOD, Reminders.METHOD_ALERT);
        reminders.put(Reminders.MINUTES, 10);

        AddEventActivity.this.getContentResolver().insert(remainderUri, reminders);
    }
Run Code Online (Sandbox Code Playgroud)

我想知道,我该怎么做:

1. Remove existing event

2. Update existing event
Run Code Online (Sandbox Code Playgroud)

android calendar android-calendar

14
推荐指数
2
解决办法
2370
查看次数

旋转器的JSON解析问题

我的所有微调器都是相互连接的,它们不是独立的,我想根据spinner1中的选择显示spinner2和spinner3中的选项(我的意思是基于用户在spinner1中选择的类别)

onCreate我将数据填充到Spinners中,但是在spinner2和spinner3中我得到的数据属于CategoryB,而它们只能填充CategoryA数据.

那我的错误在哪里?这是我的JSON解析代码:

               categoryArrayList = new ArrayList<Category>();
               cArrayList = new ArrayList<String>();

                ...................................

                // Array Level 1 --- START
            JSONArray jarray = jsono.getJSONArray("categories");

            for (int i = 0; i < jarray.length(); i++) {
                JSONObject object = jarray.getJSONObject(i);

                Category language = new Category();                     
                language.setName(object.getString("category_name"));
                Log.d("category_name::-", object.getString("category_name"));

                language.setTypeArrayList(typeArrayList);
                categoryArrayList.add(language);
                cArrayList.add(categoryArrayList.get(i).getName());

                // Array Level 1 --- END

                // Array Level 2 --- START

                JSONArray jsarray = object.getJSONArray("types");
                typeArrayList = new ArrayList<Type>();
                tArrayList = new ArrayList<String>();
                for (int j = 0; j < …
Run Code Online (Sandbox Code Playgroud)

android json spinner android-spinner

11
推荐指数
2
解决办法
327
查看次数

RecyclerView OnScrollListener()问题

我在json中有大约32条记录,我使用RecyclerView来显示它们并且我已经实现了OnScrollListener(...)

我开始一个Activity,我获取了所有32条记录,现在当我滚动时,为什么我一次又一次地获得相同的32条记录,每当我滚动时,这里是我的OnScrollListener()的实现

public void initializeOnScrollForRecyclerView() {
        mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

                int visibleItemCount = recyclerView.getLayoutManager().getChildCount();
                int totalItemCount = recyclerView.getLayoutManager().getItemCount();
                int pastVisiblesItems = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();

                if (!isLoading) {
                    if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) {
                        isLoading = true;
                        mPostPresenter.loadPosts(false);
                    }
                }
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

android android-appcompat onscrolllistener android-recyclerview

11
推荐指数
1
解决办法
1万
查看次数

如何控制MultiChoice AlertDialog

我在我的应用程序中使用Dialog以允许用户进行多项选择,这是我的代码:

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // Build an AlertDialog
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

            // String array for alert dialog multi choice items
            String[] colors = new String[]{
                    "Red",
                    "Green",
                    "Blue",
                    "Purple",
                    "Olive"
            };

            // Boolean array for initial selected items
            final boolean[] checkedColors = new boolean[]{
                    false, // Red
                    false, // Green
                    false, // Blue
                    false, // Purple
                    false // Olive

            };

            // Convert the color array to list
            final List<String> colorsList = Arrays.asList(colors); …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog multichoiceitems

10
推荐指数
2
解决办法
2万
查看次数

android.view.InflateException:二进制XML文件行#33:错误类膨胀

我使用自定义Adapter类来使用RecyclerView,这是我的代码:

public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> {

    List<NatureItem> mItems;

    public CardAdapter() {
        super();
        mItems = new ArrayList<NatureItem>();

        NatureItem nature = new NatureItem();

        nature.setName("The Great Barrier Reef");
        nature.setThumbnail(R.drawable.great_barrier_reef);
        mItems.add(nature);

        nature = new NatureItem();
        nature.setName("Grand Canyon");
        nature.setThumbnail(R.drawable.grand_canyon);
        mItems.add(nature);

    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.recycler_view_card_item, viewGroup, false);
        ViewHolder viewHolder = new ViewHolder(v);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int i) {
        NatureItem nature = mItems.get(i);
        viewHolder.tvNature.setText(nature.getName());
        viewHolder.imgThumbnail.setImageResource(nature.getThumbnail());
    }

    @Override
    public int getItemCount() { …
Run Code Online (Sandbox Code Playgroud)

xml android view adapter android-fragments

8
推荐指数
1
解决办法
7758
查看次数