View Full Version : درخواست کد listView با lazy load
mehrdad_hellboy
دوشنبه 01 تیر 1394, 13:33 عصر
سلام
من توی گیت هاب چندتا سمپل دانلود کردم اما نتونستم باهاشون کار کنم
یه لیست ویو میخواهم که اطلاعات رو از یه جیسون بگیره (سمت سرور و کد PHP مشکلی ندارم ) و توی لیست نشون بده (عکس + مثلا مشخصات )
اگه ممکنه یه پروژه که بتونم توی اندروید استودیو بازش کنم دوستان برام قرار بدن
خیلی ممنونم :)
djtrex
دوشنبه 01 تیر 1394, 15:30 عصر
سلام
من توی گیت هاب چندتا سمپل دانلود کردم اما نتونستم باهاشون کار کنم
یه لیست ویو میخواهم که اطلاعات رو از یه جیسون بگیره (سمت سرور و کد PHP مشکلی ندارم ) و توی لیست نشون بده (عکس + مثلا مشخصات )
اگه ممکنه یه پروژه که بتونم توی اندروید استودیو بازش کنم دوستان برام قرار بدن
خیلی ممنونم :)
برای ListView:
https://github.com/codepath/android_guides/wiki/Endless-Scrolling-with-AdapterViews
برای RecyclerView
http://android-pratap.blogspot.in/2015/01/endless-recyclerview-onscrolllistener.html
برای لود عکس ها با picasso در custom adapter:
https://github.com/square/picasso/blob/master/picasso-sample/src/main/java/com/example/picasso/SampleListDetailAdapter.java
چیزی که نیاز دارید ترکیب چند تا چیزه:
- دریافت اطلاعات از سرور که میتونید از HttpUrlConnection جاوا استفاده کنید و چند ۱۰۰ خط کد بزنید! یا میتونید از okhttp یا volley یا retrofit یا loopj استفاده کنید و با ۴-۵ خط کارتونو انجام بدید!
- دریافت تصاویر که باز هم میتونید از HttpUrlConnection جاوا استفاده کنید و باز هم چند ۱۰۰ خط کد بزنید! یا از کتابخانه ای مثل picasso استفاده کنید و یه خط کد بزنید!
- درست کردن listview یا recycler view
- درست کردن custom layout برای آیتم ها
- نوشتن adapter و لود کردن view
- نوشتن listener برای اینکه بفهمید به انتهای لیست رسیدید و باید صفحه بعدی لود بشه (لینک اول) یا استفاده از کتابخانه هایی مثل https://android-arsenal.com/details/1/1423 یا https://android-arsenal.com/details/1/1230
- دریافت اطلاعات صفحه بعد
mehrdad_hellboy
دوشنبه 01 تیر 1394, 22:19 عصر
برای ListView:
https://github.com/codepath/android_guides/wiki/Endless-Scrolling-with-AdapterViews
برای RecyclerView
http://android-pratap.blogspot.in/2015/01/endless-recyclerview-onscrolllistener.html
برای لود عکس ها با picasso در custom adapter:
https://github.com/square/picasso/blob/master/picasso-sample/src/main/java/com/example/picasso/SampleListDetailAdapter.java
چیزی که نیاز دارید ترکیب چند تا چیزه:
- دریافت اطلاعات از سرور که میتونید از HttpUrlConnection جاوا استفاده کنید و چند ۱۰۰ خط کد بزنید! یا میتونید از okhttp یا volley یا retrofit یا loopj استفاده کنید و با ۴-۵ خط کارتونو انجام بدید!
- دریافت تصاویر که باز هم میتونید از HttpUrlConnection جاوا استفاده کنید و باز هم چند ۱۰۰ خط کد بزنید! یا از کتابخانه ای مثل picasso استفاده کنید و یه خط کد بزنید!
- درست کردن listview یا recycler view
- درست کردن custom layout برای آیتم ها
- نوشتن adapter و لود کردن view
- نوشتن listener برای اینکه بفهمید به انتهای لیست رسیدید و باید صفحه بعدی لود بشه (لینک اول) یا استفاده از کتابخانه هایی مثل https://android-arsenal.com/details/1/1423 یا https://android-arsenal.com/details/1/1230
- دریافت اطلاعات صفحه بعد
خیلی ممنونم
ولی متاسفانه من مبتدی هستم
کد آماده ای نیست که مثلا این لینک که یه جیسون هست رو توی لیست ویو با lazy load برگردونه ؟
http://api.androidhive.info/json/movies.json
منظورم اینه که یه دونه لینک بهش بدیم فقط و این سه تایی که میگید به هم چسبیده رو تو یه جا داشته باشیم
djtrex
دوشنبه 01 تیر 1394, 23:03 عصر
خیلی ممنونم
ولی متاسفانه من مبتدی هستم
کد آماده ای نیست که مثلا این لینک که یه جیسون هست رو توی لیست ویو با lazy load برگردونه ؟
http://api.androidhive.info/json/movies.json
منظورم اینه که یه دونه لینک بهش بدیم فقط و این سه تایی که میگید به هم چسبیده رو تو یه جا داشته باشیم
کد آماده باید توی گیت هاب یا android-arsenal.com بگردید :)
قسمت لیست ویو و ... که لینک دادم بالا برای دریافت اطلاعات از سرورتون هم اگه ساختار json شبیه این باشه:
{
"movies": [
{
"title": "Dawn of the Planet of the Apes",
"image": "http://api.androidhive.info/json/movies/1.jpg",
"rating": 8.3,
"releaseYear": 2014,
"genre": ["Action", "Drama", "Sci-Fi"]
},
{
"title": "District 9",
"image": "http://api.androidhive.info/json/movies/2.jpg",
"rating": 8,
"releaseYear": 2009,
"genre": ["Action", "Sci-Fi", "Thriller"]
}
]
}
می تونید ۲ تا کلاس برای این آیتم ها در نظر بگیرید یکی برای کل آیتم ها به اسم MovieCollection:
//MovieCollection.java
class MovieCollection {
public List<Movie> movies;
}
یکی هم برای آیتم ها Movie
//Movie.java
class Movie {
public String title;
public String image;
public float rating;
public int releaseYear;
public List<String> genre;
}
با استفاده از okhttp هم میتونید اطلاعاتتون رو دانلود کنید و با Gson ساختار json تون رو به صورت کلاس های ساده جاوا map کنید. (Json serializer/deserializer)
//Activity
private final OkHttpClient client = new OkHttpClient();
private void loadData(String url){
//build request
Request request = new Request.Builder()
.url(url)
.build();
client.newCall(request).enqueue(new Callback() {
@Override public void onFailure(Request request, Throwable throwable) {
//todo show error
}
@Override public void onResponse(Response response){
if (!response.isSuccessful()) {
//todo show error
return;
}
//parse response
Gson gson = new Gson();
MovieCollection movies = gson.fromJson(
response.body().charStream(),
MovieCollection.class
);
// update list view with new items on ui thread
runOnUiThread(new Runnable() {
@Override
public void run() {
updateListView(movies);
}
});
}
});
}
این کد کامل نیست ولی مسیر کار رو بهتون میگه:)
در مورد okhttp:
http://square.github.io/okhttp/
https://github.com/square/okhttp/wiki
در مورد gson:
https://github.com/google/gson
---------------
برای اندروید هم از آموزش های سایت udacity که توسط خود گوگل ساخته شده میتونید استفاده کنید:)
https://www.udacity.com/courses/android
یا فارسی:
https://iksna.com/programming/303-Android-development-tutorial
--------------
برای آموزش listview:
http://developer.android.com/guide/topics/ui/layout/listview.html
http://www.vogella.com/tutorials/AndroidListView/article.html
https://developer.android.com/training/material/lists-cards.html
http://www.codelearn.org/android-tutorial/android-listview
mehrdad_hellboy
سه شنبه 02 تیر 1394, 15:30 عصر
کد آماده باید توی گیت هاب یا android-arsenal.com بگردید :)
قسمت لیست ویو و ... که لینک دادم بالا برای دریافت اطلاعات از سرورتون هم اگه ساختار json شبیه این باشه:
{
"movies": [
{
"title": "Dawn of the Planet of the Apes",
"image": "http://api.androidhive.info/json/movies/1.jpg",
"rating": 8.3,
"releaseYear": 2014,
"genre": ["Action", "Drama", "Sci-Fi"]
},
{
"title": "District 9",
"image": "http://api.androidhive.info/json/movies/2.jpg",
"rating": 8,
"releaseYear": 2009,
"genre": ["Action", "Sci-Fi", "Thriller"]
}
]
}
می تونید ۲ تا کلاس برای این آیتم ها در نظر بگیرید یکی برای کل آیتم ها به اسم MovieCollection:
//MovieCollection.java
class MovieCollection {
public List<Movie> movies;
}
یکی هم برای آیتم ها Movie
//Movie.java
class Movie {
public String title;
public String image;
public float rating;
public int releaseYear;
public List<String> genre;
}
با استفاده از okhttp هم میتونید اطلاعاتتون رو دانلود کنید و با Gson ساختار json تون رو به صورت کلاس های ساده جاوا map کنید. (Json serializer/deserializer)
//Activity
private final OkHttpClient client = new OkHttpClient();
private void loadData(String url){
//build request
Request request = new Request.Builder()
.url(url)
.build();
client.newCall(request).enqueue(new Callback() {
@Override public void onFailure(Request request, Throwable throwable) {
//todo show error
}
@Override public void onResponse(Response response){
if (!response.isSuccessful()) {
//todo show error
return;
}
//parse response
Gson gson = new Gson();
MovieCollection movies = gson.fromJson(
response.body().charStream(),
MovieCollection.class
);
// update list view with new items on ui thread
runOnUiThread(new Runnable() {
@Override
public void run() {
updateListView(movies);
}
});
}
});
}
این کد کامل نیست ولی مسیر کار رو بهتون میگه:)
در مورد okhttp:
http://square.github.io/okhttp/
https://github.com/square/okhttp/wiki
در مورد gson:
https://github.com/google/gson
---------------
برای اندروید هم از آموزش های سایت udacity که توسط خود گوگل ساخته شده میتونید استفاده کنید:)
https://www.udacity.com/courses/android
یا فارسی:
https://iksna.com/programming/303-Android-development-tutorial
--------------
برای آموزش listview:
http://developer.android.com/guide/topics/ui/layout/listview.html
http://www.vogella.com/tutorials/AndroidListView/article.html
https://developer.android.com/training/material/lists-cards.html
http://www.codelearn.org/android-tutorial/android-listview
من تو این چند روز خیلی تلاش کردم این کار رو انجام بدم
اما نتونستم :گریه:
ممکنه شما این کار رو برام انجام بدید ؟؟:گریه::گریه:
djtrex
سه شنبه 02 تیر 1394, 18:36 عصر
تنها کاری که باید بکنید اینه که این ۳ تارو با هم ترکیب کنید:
- https://github.com/codepath/android_guides/wiki/Endless-Scrolling-with-AdapterViews (برای listview و on scroll listener)
- https://github.com/square/picasso/blob/master/picasso-sample/src/main/java/com/example/picasso/SampleListDetailAdapter.java (برای adpater که عکس هارو با picasso لود میکنه و از view holder pattern استفاده میکنه)
- و کد های پست قبل برای دریافت اطلاعات از سرور
اگه واقعا نمی تونید بیشتر از این از من کمکی ساخته نیست:)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.