PDA

View Full Version : مشکل من در recyclerview



capitan_nemesis
دوشنبه 22 آبان 1396, 17:44 عصر
با سلام به همه دوستان
من یه لیست با recyclerview دارم لیستش درست شده هیچ ایرادی هم نداره ولی مشکل من اینه که نمیتونم کلیک کنم
کلیک در recyclerview چطوریه ؟؟؟؟؟؟

public class MainActivity extends AppCompatActivity
{
private static Integer i;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getWindow().getDecorView().setLayoutDirection(View .LAYOUT_DIRECTION_RTL);

List<Data> data = fill_with_data();
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
Recycler_View_Adapter adapter = new Recycler_View_Adapter(data, getApplication());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
}

private List<Data> fill_with_data()
{
List<Data> data = new ArrayList<>();
data.add(new Data("همه چیز درباره اوبونتو","سیستم عاملی آسان و زیبا با کاربرد آسان",R.mipmap.ubuntu));
data.add(new Data("همه چیز درباره کوبونتو","سیستم عاملی با محیط کاملا معمولی کمی سخت",R.mipmap.kubuntu));
data.add(new Data("همه چیز درباره کالی","سیستم عاملی برای دوستداران هک و امنیت",R.mipmap.kali));
data.add(new Data("همه چیز درباره دپین","سیستم عاملی شبیه مک با محیطی کاملا زیبا",R.mipmap.deppin));
data.add(new Data("همه چیز درباره لینوکس","بهترین سیستم ععامل جهان متن باز و با امنیت",R.mipmap.list_logo_linux));
data.add(new Data("همه چیز درباره نرم افزار های آزاد","درباره تمامی نرم افزار های متن باز و مجانی",R.mipmap.app));
data.add(new Data("همه چیز درباره من","همه چیز درباره آشنایی با من",R.mipmap.about_us));
data.add(new Data("همه چیز درباره قوانین گروه","درباره تمامی اطلاعات درمورد قوانین گروه",R.mipmap.law));
return data;
}

اینم کدم
من میخوام رو هر کردوم که کلیک کردم برو تو اکتیویتی خودش
ممنون
اگه عکس هم از خود برنامه خواستین بگین آپ کنم

capitan_nemesis
سه شنبه 23 آبان 1396, 13:32 عصر
:گیج::گیج: کسی
recyclerview گار نکرده ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

amirxbest
سه شنبه 23 آبان 1396, 17:18 عصر
کیلک روی آیتم های ریسایکلر ویو چیز خاصی نداره داخل آداپتوری که داری میتونی رویداد کلیک رو تعریف کنی و در کل به 2 صورت میشه رویداد کلیک رو برای آیتمهای ریسایکلر ویو تعریف کرد یکی همینی که گفتم که ساده تر هم هست و یکی هم بیای متد onclick رو براش پیاده سازی کنی یه سرچ تو گوگو بزنی کلی رفرنس گیرت میاد.

روش اول راحت :
https://stackoverflow.com/questions/24885223/why-doesnt-recyclerview-have-onitemclicklistener


روش دوم یکم پیچیده ولی اصولی تر :

https://antonioleiva.com/recyclerview-listener/


اگر کاراهای ساده میخوای بکنی مثل بتز کردن یه اکتیویتی و یا این مدل کارا همون روش اول کارتو راه میندازه

موفق باشید

capitan_nemesis
سه شنبه 23 آبان 1396, 18:13 عصر
من از این روش رفتم فقط نتونستم برم اکتیویتی که میخوام برم
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
final String element = mDataset[position];

holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onClickSubject.onNext(element);
}
});
}

aliireza
جمعه 03 آذر 1396, 12:23 عصر
شما به جای اینکار از کتابخونه‌های موجود استفاده کن. هم سریع‌تره و هم امکانات بیشتری داره. مثلا کتابخونه FastAdapter یا موارد مشابه. تو گیت هاب سرچ کنید recyclerview کتابخونه‌های مرتبط رو میاره.
اگر هم علاقه‌‌ای به اینکار ندارید باید خودتون event های ریسایکلر رو مثل onclick و onlongclick بنویسید که توصیه نمیشه.