جستجو در انجمن

در حال نمایش نتایج برای برچسب های 'recyclerview'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


برنامه نویسی اندروید | آموزش برنامه نویسی اندروید | آموزش اندروید

  • اندروید
    • ابزار های برنامه نویسی اندروید
    • آموزش برنامه نویسی اندروید
    • رفع مشکلات و سوالات
    • امنیت در اندروید
    • پروژه های اندروید
  • پشتیبانی اندروید
    • اندروید Lollipop
    • اندروید marshmallow
    • اندروید nougat
    • اندروید Oreo
  • کاتلین (Kotlin)
    • آموزش های برنامه نویسی Kotlin
    • سوالات و رفع مشکلات Kotlin
  • مباحث مرتبط با اندروید
    • ابزارها و سایتهای مفید
    • گرافیک موبایل
    • آموزش های ویدئویی
    • برنامه نویسی جاوا
  • تکنولوژی های اندروید
    • وب موبایل
    • توسعه اندروید با #C
    • توسعه اندروید با Basic4Android
  • متفرقه
    • اپلیکیش های ایرانی
    • برنامه نویسی
    • درخواست همکاری
    • مباحث متفرقه
    • مهارتهای فروش و بازاریابی
  • پشتیبانی محصولات مارکت
    • پرسش و پاسخ مرتبط با مارکت انجمن اندروید ایران
    • پشتیبانی مارکت پروژه های اندروید
    • پشتیبانی مارکت آموزش اندروید
    • پشتیبانی مارکت گرافیک موبایل
  • انجمن اندروید ایران
    • اخبار و اعلانات
    • صندوق پيشنهادات و انتقادات
    • تازه‌های دنیای کامپیوتر و فناوری
    • قوانین انجمن تخصصی اندروید ایران

دسته ها

  • پروژه اندروید
    • سورس پروژه اندروید
    • کامپوننت های اندروید
    • کتابخانه های اندروید
  • آموزش اندروید
    • فیلم آموزشی کاربردی
    • مقالات آموزشی اندروید
  • گرافیک موبایل
    • قالب طراحی اپلیکیشن
  • اپلیکیشن های اندروید
    • کاربردی
    • کسب و کار
    • آموزش
    • کتاب‌ها و منابع
    • ویدئو و رسانه
    • بازی‌

تقویم ها

  • Community Calendar

18 نتیجه پیدا شد

  1. بعضی از دوستان برای انجام onLongClick و onClick در recyclerView دچار مشکل میشن.قصد من در این آموزش انجام این اعمال در recyclerView هستش. برای این کار ابتدا باید یک کلاس جداگانه بنویسیم به صورت زیر: public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener { private OnItemClickListener mListener; private OnItemLongClickListener mLongListener; public interface OnItemClickListener { public void onItemClick(View view, int position); } public interface OnItemLongClickListener { public void onItemClick(View view, int position); } GestureDetector mGestureDetector; public RecyclerItemClickListener(Context context, OnItemClickListener listener) { mListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } }); } public RecyclerItemClickListener(Context context, OnItemLongClickListener listener) { mLongListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } }); } @Override public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) { View childView = view.findChildViewUnder(e.getX(), e.getY()); if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) { mListener.onItemClick(childView, view.getChildAdapterPosition(childView)); } return false; } @Override public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } } بعد از اضافه کردن کلاس بالا حالا باید ازش استفاده کنیم به صورت زیر : متد onLongClick: recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getApplicationContext(), attachFileRecyclerView, new RecyclerTouchListener.ClickListener() { @Override public void onClick(View view, int position) { } @Override public void onLongClick(View view, final int position) { . . . } })); متد onClick: recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getApplicationContext(), new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { . . . } }));
  2. سلام ، من برای ساخت Endless RecyclerView طبق این اموزش : https://stackoverflow.com/questions/37004131/implementing-endless-recyclerview به مشکل برخورم ، مشکلی که دارم اینه که نمیدونم ادپتر رو چطوری باید ست کنم و اطلاعات هر سطر رو بهش بدم و بصورت کلی متوجه نشدم چطور باید از این کد استفاده کنم ممنون میشم راهنمایی کنید .
  3. با سلام خدمت تمام اساتید عزیز من ی سوال داشتم من تو برنامم اومدم و cardview هام رو قرار دادم تو recyclerview ام . حالا میخوام بدونم چطوری باید کاری بکنم ک وقتی روی هر کدوم از این cardview ها کلیک شد بره به یک صفحه دیگ ؟ ممنون میشم کمک کنید استادی عزیز
  4. RecyclerViewFastScroller یک ویجت است که می توان از آن برای پیمایش سریع استفاده کرد. RecyclerViewFastScroller-master.zip
  5. RecyclerView بسیار شبیه ListView در اندروید است. هر دو برای نمایش لیست در برنامه اندروید مورد استفاده قرار می گیرند، اما در بعضی موارد در مقایسه با یکدیگر تفاوت دارند. ListView در مقایسه با RecyclerView تا حدودی کندتر است. RecyclerView برخی از سفارشی سازی های اضافی را که ListView ارائه نمی کند فراهم می کند. RecyclerView در طراحی آیتم ها لیست ها در اندروید معرفی شده است. RecyclerView می تواند عملکرد نرم افزار را با بازیابی دیدگاه ها برای نمایش اقلام ردیف بهینه سازی کند، زیرا از هر نمایشگر برای نمایش هر آیتم لیست استفاده می کند که ListView هر بار که آیتم لیست قابل مشاهده است، نمای جدید را ایجاد می کند. ListView برخی از اقلام لیست را محدود می کند، در حالی که RecyclerView ابزار خاصی برای طراحی آیتم لیست فراهم می کند. ما همچنین می توانیم بگوییم که RecyclerView نسخه جدید ListView در اندروید است. ListView لیست سفارشی سازی لیست را با کمک منابع drawable فراهم می کند اما سفارشی سازی آن برای مثال محدود می شود. ما می توانیم از itemable برای item list که برای همه موارد در لیست استفاده می شود استفاده کنیم، نمی توانیم سفارشی سازی یک آیتم لیست خاص را ارائه دهیم. در حالی که ابزار ItemDecoration recyclerview، سفارشی کردن طراحی خاص و طرح بندی طرح برای یک آیتم لیست خاص را فراهم می کند. DividerItemDecoration verticalDecoration = new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.HORIZONTAL); Drawable verticalDivider = ContextCompat.getDrawable(getApplicationContext(), R.drawable.myshape); verticalDecoration.setDrawable(verticalDivider); recyclerView.addItemDecoration(verticalDecoration); DividerItemDecoration horizontalDecoration = new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL); Drawable horizontalDivider = ContextCompat.getDrawable(getApplicationContext(), R.drawable.myshape); horizontalDecoration.setDrawable(horizontalDivider); recyclerView.addItemDecoration(horizontalDecoration);
  6. سلام من با استفاده از کدهای زیر یک لیست بی پایان با ریسایکر ویو ساختم ولی مشکل اینجاس زمانی که ایتم ها تموم میشه دیگه ادامه نده و اخری رو نشون بده ولی در این حالت زمانی که ایتم اخر نمایش داده شد صفحه ای خالی رو نشون میده scat_recycles.setOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); } @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { int totalItemCount = mLayoutManager.getItemCount(); int lastVisibleItem = mLayoutManager.findLastVisibleItemPosition(); if (totalItemCount > 1) { if (lastVisibleItem >= totalItemCount - 1) { // End has been reached // do something Limit += 8; new home_agahi3_server(getActivity().getApplicationContext(), getActivity(), state_id, "1",Limit + "" ).execute(); } } } });
  7. سلام خسته نباشید میخوام ی ریسایکلر ویو بسازم که مثل این عکس آیکون هرکدومش متفاوتش باشه یعنی هر چندتاییش متفاوت باشن با هم چیکار کنم؟ و دوم اینکه میخوام یه صفحه پاپ آپ بسازم مثل این عکس...برای این کار چیکار کنم؟! http://uupload.ir/files/yup_popup_page.jpg
  8. سلام من میخوام ریسایکلرویو و کارد ویو اجرا کنم اما ارور NullPoniter میده. = AdapterCardView package com.example.recyclerview; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class AdapterCardView extends RecyclerView.Adapter<ViewHolder> { Context context; LayoutInflater inflater; public AdapterCardView(Context context) { this.context = context; inflater = LayoutInflater.from(context); } public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.adapter_card_view, parent, false); ViewHolder viewHolder = new ViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { } public int getItemCount() { // return ActivityMain.flower.size(); return 20; } } AdapterFragment package com.example.recyclerview; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; public class AdapterFragment extends FragmentPagerAdapter { ////برای داشتن 3 تا تب/// final int PAGE_COUNT = 3; private String tabTitles[] = new String[] {"علاقه مندی","درخت","گل ها"}; public AdapterFragment(FragmentManager fm ) { super( fm ); } @Override public int getCount() { return PAGE_COUNT; } @Override public Fragment getItem(int position){ return PageFragment.newInstance(position +1); } @Override public CharSequence getPageTitle(int position){ return tabTitles[position]; } } MainActivity package com.example.recyclerview; import android.content.Context; import android.support.design.widget.TabLayout; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { public static Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context =getApplicationContext(); setTabOption(); } private void setTabOption() { ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); viewPager.setAdapter(new AdapterFragment(getSupportFragmentManager())); TabLayout tabStrip = (TabLayout) findViewById(R.id.tabs); tabStrip.setupWithViewPager(viewPager); } } PageFragment package com.example.recyclerview; import android.app.Fragment; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class PageFragment extends Fragment { private int mPage; public static final String ARG_PAGE = "ARG_PAGE"; RecyclerView recyclerView; public static PageFragment newInstance(int page) { Bundle args = new Bundle(); args.putInt(ARG_PAGE, page); PageFragment fragment = new PageFragment(); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mPage = getArguments().getInt(ARG_PAGE); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_page, container, false); recyclerView = (RecyclerView) view.findViewById(R.id.my_recycler_view); AdapterCardView adapter = new AdapterCardView(MainActivity.context); recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.context)); return view; } } ViewHolder package com.example.recyclerview; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View itemView) { super(itemView); } } Layout=== ActivityMain <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.recyclerview.MainActivity"> <android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="56dip" android:layout_gravity="bottom" android:background="@color/colorPrimary" android:id="@+id/tabs"> </android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/viewpager"> </android.support.v4.view.ViewPager> </LinearLayout> Adapter_Card_view <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ffffff" android:elevation="10dip" android:layout_marginLeft="5dip" android:layout_marginRight="5dip"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="80dip" android:elevation="5dip" android:gravity="center_vertical|right" android:id="@+id/card_adapter"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="story" android:id="@+id/title" android:textColor="#000000" android:textSize="14sp"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@mipmap/ic_launcher"/> </LinearLayout> </android.support.v7.widget.CardView> Fragment_Page <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/my_recycler_view" android:clipToPadding="false" android:scrollbars="vertical" > </android.support.v7.widget.RecyclerView> </LinearLayout> عکس از لاگ برنامه و دیباگ برنامه پیوست کردم
  9. در این آموزش قصد داریم یک لیست از اطلاعات را با استفاده از RecyclerView ایجاد کنیم که سطرهای قابلیت انتخاب و تغییر شدن را داشته باشند Gradle compile 'com.android.support:recyclerview-v7:23.0.0' activity_recycle_view_main.xml <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" tools:context=".RecycleViewMainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" /> </RelativeLayout> list_item_row.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/list_row" android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" android:orientation="vertical"> <LinearLayout android:id="@+id/linear" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/plantImageView" android:layout_width="100dp" android:layout_height="100dp" android:scaleType="fitXY" android:src="@mipmap/ic_launcher" /> <LinearLayout android:id="@+id/innerLayout" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="5dp" android:layout_weight="0.9" android:orientation="vertical"> <TextView android:id="@+id/personNameTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:fontFamily="sans-serif-light" android:singleLine="true" android:textColor="#5B5B5B" android:textSize="16dp" android:textStyle="bold" /> <TextView android:id="@+id/personDsgTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:fontFamily="sans-serif-light" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="#787878" /> <TextView android:id="@+id/personAddTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:fontFamily="sans-serif-light" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="#787878" /> </LinearLayout> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_below="@+id/linear" android:background="#787878" /> </RelativeLayout> RecycleViewMainActivity.java import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import java.util.ArrayList; public class RecycleViewMainActivity extends AppCompatActivity { private ArrayList<Person> mPersonList; private RecyclerView mRecyclerView; private CustomAdapter mAdapter; private RecyclerView.LayoutManager mLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recycle_view_main); mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view); // use this setting to improve performance if you know that changes // in content do not change the layout size of the RecyclerView mRecyclerView.setHasFixedSize(true); // use a linear layout manager mLayoutManager = new LinearLayoutManager(getApplicationContext()); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.addOnItemTouchListener( new RecyclerItemClickListener(getApplicationContext(), new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { try { mAdapter.setSelected(position); } catch (Exception e) { e.printStackTrace(); } } }) ); setupPersonList(); } private void setupPersonList() { mPersonList = new ArrayList<Person>(); mPersonList.clear(); for (int i = 0; i < 25; i++) { Person person = new Person("Person " + i, "Desgination " + i, "Address " + i); mPersonList.add(person); } mAdapter = new CustomAdapter(mPersonList, this); mRecyclerView.setAdapter(mAdapter); } } RecyclerItemClickListener.java import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener { private OnItemClickListener mListener; public interface OnItemClickListener { public void onItemClick(View view, int position); } GestureDetector mGestureDetector; public RecyclerItemClickListener(Context context, OnItemClickListener listener) { mListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } }); } @Override public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) { View childView = view.findChildViewUnder(e.getX(), e.getY()); if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) { mListener.onItemClick(childView, view.getChildPosition(childView)); return true; } return false; } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } @Override public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { } } CustomAdapter.java import android.content.Context; import android.content.SharedPreferences; import android.graphics.Color; 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.RelativeLayout; import android.widget.TextView; import java.util.ArrayList; public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> { private ArrayList<Person> mPersonList; private SharedPreferences mPref; private SharedPreferences.Editor mEditor; // Provide a reference to the views for each data item // Complex data items may need more than one view per item, and // you provide access to all the views for a data item in a view holder public class ViewHolder extends RecyclerView.ViewHolder { // each data item is just a string in this case TextView personNameTextView, personAddTextView, personDsgTextView; RelativeLayout list_row; public ViewHolder(View v) { super(v); personNameTextView = (TextView) v.findViewById(R.id.personNameTextView); personAddTextView = (TextView) v.findViewById(R.id.personAddTextView); personDsgTextView = (TextView) v.findViewById(R.id.personDsgTextView); list_row = (RelativeLayout) v.findViewById(R.id.list_row); } } public void add(int position, Person item) { mPersonList.add(position, item); notifyItemInserted(position); } public void remove(String item) { int position = mPersonList.indexOf(item); mPersonList.remove(position); notifyItemRemoved(position); } // Provide a suitable constructor (depends on the kind of dataset) public CustomAdapter(ArrayList<Person> personList, Context context) { mPersonList = personList; mPref = context.getSharedPreferences("person", Context.MODE_PRIVATE); mEditor = mPref.edit(); } // Create new views (invoked by the layout manager) @Override public CustomAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_row, parent, false); // set the view's size, margins, paddings and layout parameters ViewHolder vh = new ViewHolder(v); return vh; } // Replace the contents of a view (invoked by the layout manager) @Override public void onBindViewHolder(ViewHolder holder, int position) { // - get element from your dataset at this position // - replace the contents of the view with that element holder.personNameTextView.setText(mPersonList.get(position).getPersonName()); holder.personAddTextView.setText(mPersonList.get(position).getPersonAdd()); holder.personDsgTextView.setText(mPersonList.get(position).getPersonDsg()); Log.e("selection", "" + mPersonList.get(position).isSelected()); if (mPersonList.get(position).isSelected()) { holder.list_row.setBackgroundColor(Color.parseColor("#d5d5d5")); } else { holder.list_row.setBackgroundColor(Color.TRANSPARENT); } } public void setSelected(int pos) { try { if (mPersonList.size() > 1) { mPersonList.get(mPref.getInt("position", 0)).setSelected(false); mEditor.putInt("position", pos); mEditor.commit(); } mPersonList.get(pos).setSelected(true); notifyDataSetChanged(); } catch (Exception e) { e.printStackTrace(); } } // Return the size of your dataset (invoked by the layout manager) @Override public int getItemCount() { return mPersonList.size(); } } Person.java public class Person { String personName; String personAdd; String personDsg; boolean selected; Person(String name, String dsg, String add) { this.personName = name; this.personAdd = add; this.personDsg = dsg; } public boolean isSelected() { return selected; } public void setSelected(boolean selected) { this.selected = selected; } public String getPersonDsg() { return personDsg; } public void setPersonDsg(String personDsg) { this.personDsg = personDsg; } public String getPersonAdd() { return personAdd; } public void setPersonAdd(String personAdd) { this.personAdd = personAdd; } public String getPersonName() { return personName; } public void setPersonName(String personName) { this.personName = personName; } }
  10. سلام یه ریسایکلرویو باکاردویو دارم که یه سری مطالب رو از سرور نشون میده هرکدوم از مطالب یه سری چیزای مثل تیتر و یه سری چیزای دیگه و آیدی داره حالا برای رفرشش میخوام از اخرین ایتم ریسایکلرویو آیدی که قبلا از سرور گرفته رو بگیره و دوباره بفرسته به سرور تا پست های بعدی رو بر اساس اون آیدی لود کنه قسمتی که مشکل دارم گرفتن پوزیشن و آیدی اولین و اخرین ایتم ریسایکلر ویو هست
  11. سلام به همه دوستان قضد دارم دکمه لایکی در هر ایتم از ریسایکلر ویوی برنامم بزارم که کنارش هم تعدا لایک ها نمایش داده بشه حالا مشکلی که بهش برخوردم اینه که در صورت بازگشت دوباره کاربر به صفحه ی ایتم ها ; آیتم های لایک شده باقی مونده باشن (لایک و انلایک هر آیتم حفظ بشه) کل اطلاعات ریسایکلر هم از سرور گرفته میشه لطف کنید و راهنمایی بفرمایید که چطور این کار رو انجام بدم
  12. سلام.اگر درست بگم ریسایکلرویو اینجوری کار میکنه که هربار میاد آدرس هر عکس رو از یک رکورد دیتابیس میخونه و نشون میده. حالا من اگر بخوام بجای اینکه آدرس هر عکس رو از هر رکورد بخونه بیاد از چند ستونِ(فیلد) فقط یک رکورد بخونه باید چیکار کنم. امیدوارم منظورمو رسونده باشم باتشکر
  13. با سلام خدمت همه دوستاندو سوال داشتم:1. در کد نویسی قطعه کدی دارم که می خوام زمانی که روی یک آیتم از popupMenu کلیک شد عنوان آن تغییر کندجستجو های زیادی در اینباره کردم ولی به نتیجه ای نرسیدمقطعه کد popupMenu private void showPopupMenu(View view, int position) { // inflate menu final PopupMenu popup = new PopupMenu(mContext, view); final MenuInflater inflater = popup.getMenuInflater(); inflater.inflate(R.menu.menu_album, popup.getMenu()); popup.setOnMenuItemClickListener(new MyMenuItemClickListener(position, view)); popup.show(); } /** * Click listener for popup menu items */ class MyMenuItemClickListener implements PopupMenu.OnMenuItemClickListener { private int position; private View view; public MyMenuItemClickListener(int position, View view) { this.position = position; this.view = view; } @Override public boolean onMenuItemClick(MenuItem menuItem) { switch (menuItem.getItemId()) { case R.id.action_add_favourite: dataSource = new DataSource(mContext); if (!dataSource.BookIsFav(position)) { menuItem.setTitle(R.string.str_action_del_favourite); dataSource.BookFav(position); Toast.makeText(mContext, R.string.str_action_add_favourite, Toast.LENGTH_SHORT).show(); } else { menuItem.setTitle(R.string.str_action_add_favourite); dataSource.BookNoFav(position); Toast.makeText(mContext, R.string.str_action_del_favourite, Toast.LENGTH_SHORT).show(); } return true; case R.id.action_index: Toast.makeText(mContext, menuItem.getTitle() + "", Toast.LENGTH_SHORT).show(); return true; default: } return false; } } 2. چگونه لیست Recyclerview که در فرگمنت هست رو رفرش کنم؟ناگفته نماند که در اینباره هم جستجو های فراوانی کردم و هر کدام را زدم اجرا نشدمثل adapter.notifyDataSetChanged(); ممنون میشم هر چه زودتر به سوالات بنده پاسخ دهیدبا سپاس
  14. سلام من عکس رو از گالری میگیرم و آدرسِ اونو ذخیره میکنم تووی دیتابیس ، و نهایتاً با یک BitMap اونو میخونم و با ریسایکلرویو نمایش میدم. مشکل اینه که وقتی تعدادِ تصاویر بیشتر از 2 یا 3 تصویر میشه،برنامه به طرز عجیبی سنگین میشه! برنامه به هیچ وجه کرش نیمشه و کماکان درحال اجرا هست،فقط رم میخواد بترکه! این مشکلو چطور میتونم رفع کنم؟ با تشکر
  15. با سلام من یک آلرت دیالوگ شخصی سازی شده ساختم و میخوام با کلیک روی آیمتم های ریسایکلرویوم نمایش داده بشه کلاس ViewHolder رو ایمپلمنت کردم از OnClickListener و توی متد OnClick() ، کلاس آلرتم رو new کردم و Alert.show() رو نوشتم ولی نشون نمیده Toast رو میتونم نشون بدم ولی لیوت رو نه package com.narsis.countriesandcontinents.mainPage; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.text.Layout; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.narsis.countriesandcontinents.Alert; import com.narsis.countriesandcontinents.R; public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ Context context; ImageView img_flags; TextView txt_countryname; public ViewHolder(View itemView) { super(itemView); img_flags= (ImageView) itemView.findViewById(R.id.flag); txt_countryname= (TextView) itemView.findViewById(R.id.countryname); itemView.setOnClickListener(this); } @Override public void onClick(View view) { Alert alert = new Alert(context); alert.show(); } } ممنون
  16. سلام خسته نباشید ،قبل از طرح سوالم جا داره یه تشکر از رسیدگی های شما عزیزان خصوصا فرزاد خان که خیلی لطف میکنند به توسعه دهنده ها داشته باشم و اما سوال من،میخوام یه توی یک اکتیوی یه حالت مسابقه مانند بزارم توی دیتابیسم هر رکورد یه صدا داره و یک نوشته ، حالا میخوام بصورت کاملا تصادفی یه صدا پخش بشه ،و 4 تا گزینه(ایتم )داشته باشم ، و توی اون 4 تا بازم بصورت تصادفی 4 تا رکورد(همون قسمت نوشته هر رکورد)رو بصورت تصادفی بگیره و توی این 4 تا ایتم نشون بده،و وقتی روی گزینه صحیح کلیک شد بره مرحله بعد... حالا اولا اینکه باید از ریسایکلر ویو استفاده کرد؟ازین جهت این سوالو میپرسم چونکه ریسایکلر ویو ،ویو هولدر داره و میتونه اطلاعات هر ایتم رو هر بار بدون تغییر خود ایتم،عوض بکنه... دوم اینکه پیشنهاد شما چیه؟ پیشاپیش ممنونم
  17. سلام خسته نباشید من دیتابیسم اماده و داخلی هست دیتابیس رو با کدایی که پایین میبینید مقدارشو توی یک لیست hashmap ریختم و بصورت یک لیست ویو (با استفاده از یک simple adapter) اونو نشون دادم و بدون اشکال و مشکل اجرا میشه برای مثال کد زیر رو اینجا میبینید که بدرستی کار میکنه: این کدایین که توی کلاس database handler هم است که همون اپن هلپر رو ازش ارث بری کرده public List<HashMap<String , Object>> getWords() { Cursor cursor=db.rawQuery( "SELECT * FROM " + DB_TBL_WORDS_NAME,null); List<HashMap<String , Object>> words=new ArrayList<>(); while ( cursor.moveToNext() ) { HashMap<String , Object> temp=new HashMap<>(); temp.put("id", cursor.getString(0)); temp.put("word", cursor.getString(1)); temp.put("image",cursor.getString(2)); if (cursor.getString(3).equals("1")) { temp.put("see_flag",R.drawable.see); }else { temp.put("see_flag",R.drawable.not_see); } if (cursor.getString(4).equals("1")) { temp.put("fav_flag",R.drawable.is_favorite); }else { temp.put("fav_flag",R.drawable.not_favorite); } words.add(temp); } return words; } اینم کدایین که توی اون اکتیویتی که میخوام نمایش بدم : public class WordsActivity extends AppCompatActivity { private RecyclerView recyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_words); setupRecyclerView(); getWordsFromDB(); } private void setupRecyclerView(){ recyclerView=(RecyclerView)findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new GridLayoutManager(WordsActivity.this,2,LinearLayoutManager.VERTICAL,false)); } private void getWordsFromDB(){ DatabaseHandler databaseHandler=new DatabaseHandler(this); List<Word> words=databaseHandler.getWords(); TextAdapter wordsAdapter=new TextAdapter(this,words); recyclerView.setAdapter(wordsAdapter); } اما مشکل جایی هست که من میخوام اینو توی یک ریسایکلر ویو و مشخصا یه آداپتر کامل بریزم !!! وقتی این کد زیر رو میزارم جای اون قبلیا و روش آداپتر ست میکنم و ریسایکلر ویوم رو،در واقع میگن این query که از دیتابیس میگیرم اون تیبل رو نمیتونه اصلا ایجاد کنه !!! اینم کدش public List<Word> getWords(){ List<Word> words =new ArrayList<>(); Cursor cursor=db.rawQuery("SELECT * FROM " +DB_TBL_WORDS_NAME, null); cursor.moveToFirst(); if (cursor.getCount()>0){ while (!cursor.isAfterLast()){ Word word=new Word(); word.setId(cursor.getInt(0)); word.setTitle(cursor.getString(1)); word.setImageview(cursor.getString(2)); words.add(word); cursor.moveToNext(); } } cursor.close(); db.close(); return words; } حاالا راه حل چیه باید چیکار کنم؟چرا اینا روی لیست ویو و سیمپل اداپترم میتونم ست کنم اما روی یک ریسایکلر ویو کامل نمیشه و دیتابیس و مشخصا اون تیبل words اصلا ساخته نمیشه؟!