ورود

View Full Version : راهنمایی در مورد GridView



sara.nikzadeh
یک شنبه 21 دی 1393, 20:20 عصر
با سلام دوستان
من از GridView که در برنامه های کوچک اندروید هست استفاده کردم، حالا میخوام که با کلیک روی ایکون هاش یه اکتیویتی اجرا بشه
لینک همون GridView (http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF/page3)
خواهشا اگه میشه یه راهنمایی بکنین
ممنون از همگی

smemamian
یک شنبه 21 دی 1393, 21:02 عصر
سلام

gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {

Intent intent = new Intent(getActivity(), YourClass.class);

startActivity(intent);
}
});

البته من چون در Fragment استفاده کرده بودم از تابع getActivity استفاده کردم شما تغییرش بدین .

sara.nikzadeh
دوشنبه 22 دی 1393, 09:25 صبح
سلام

gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {

Intent intent = new Intent(getActivity(), YourClass.class);

startActivity(intent);
}
});

البته من چون در Fragment استفاده کرده بودم از تابع getActivity استفاده کردم شما تغییرش بدین .

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

smemamian
دوشنبه 22 دی 1393, 10:16 صبح
اگر تعداد Itemهای شما (همون سلول خودتان) زیاد هستش این کار صحیح نیست که یک Activity منحصر به فرد رو باز کنید.
ولی در کل، شما در همین تابع یک switch با مقدار position بذارید (داخل یک Editor ساده نوشتم) :

gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {

switch(position){
case 0:{
Intent intent = new Intent(getActivity(), YourClass_0.class);
startActivity(intent);

}break;

}


}
});

sara.nikzadeh
دوشنبه 22 دی 1393, 11:28 صبح
اگر تعداد Itemهای شما (همون سلول خودتان) زیاد هستش این کار صحیح نیست که یک Activity منحصر به فرد رو باز کنید.
ولی در کل، شما در همین تابع یک switch با مقدار position بذارید (داخل یک Editor ساده نوشتم) :

gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {

switch(position){
case 0:{
Intent intent = new Intent(getActivity(), YourClass_0.class);
startActivity(intent);

}break;

}


}
});

ممنون از راهنماییت
این کد رو اعمال کردم اما یه مشکلی که پیش اومده اینه که تا روی سلول گرید ویو کلیک میشه اکتیویتی انجام میشه.
اگه بخوام روی ایکون اینکار رو بکنم چیکار باید بکنم:متفکر::متفکر::متفکر:

smemamian
دوشنبه 22 دی 1393, 11:41 صبح
این کار رو باید داخل Adapter انجام بدین :

....
}else
viewholder = (ViewHolder)convertView.getTag();

viewholder.your_image.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub


}

}

sara.nikzadeh
دوشنبه 22 دی 1393, 12:23 عصر
این کار رو باید داخل Adapter انجام بدین :

....
}else
viewholder = (ViewHolder)convertView.getTag();

viewholder.your_image.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub


}

}

آقایون شرمنده به خدا:اشتباه::اشتباه::اشتباه:
متوجه نشدم کجای کلاس این قطعه کد رو استفاده کنم:لبخند::لبخند: