当用户到达列表中可见的项目时,如何在底部显示进度条.
我编写了一个代码,我使用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
我正在尝试使用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
我已经在项目的根目录中复制了这个 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
我的课程扩展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) 我一直在学习使用这篇文章使用Material Design来使用Sliding Tabs .我已成功地实现SlidingTabs 以下的Toolbar,像这样的:

但现在我想创建ActionBar/ToolBar Fragment选项卡 ......
我正在遵循这个要点,进入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) 我的所有微调器都是相互连接的,它们不是独立的,我想根据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) 我在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
我在我的应用程序中使用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) 我使用自定义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)