View Full Version : کار نکردن تپ کردن روی آیتم های لیست ویو
MMNNNM
شنبه 24 اسفند 1392, 13:51 عصر
سلام دوستان من یک لیست ویو دارم حالا می خوام کاری کنم که روی هر آیتم کلیک شد یه کاری کنه
ولی از آموزش های تونی نت و سوال هایی که قبلا کاربرا پرسیدند استفاده کردم ولی کار نمی کنه !!
جز این روش که نوشتم راه دیگه هست ؟؟؟
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getBaseContext(), "" + position, Toast.LENGTH_SHORT).show();
Log.i("LOG", "Click Shod ");
}
});
rubiks.kde
شنبه 24 اسفند 1392, 13:58 عصر
سطرهای شما شخصی سازی شده است؟(منظورم اینه از custom row دارید استفاده میکنید؟)
این روشی که استفاده کردید روش اصلی هست.
MMNNNM
شنبه 24 اسفند 1392, 14:06 عصر
منظورت رو نمیفهمم ولی این کد Adapter منه
تو این Adapterمن به آیتم های لیست ویو settextcolor و settextSizeو... هم میدم که الان از کد ها برداشتم
کارم خیلی گیره
public Myadapter(Context context, ArrayList<item> itemsArrayList) {
super(context, R.layout.item_tarfand, itemsArrayList);
this.context = context;
this.itemsArrayList = itemsArrayList;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 1. Create inflater
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
// 2. Get rowView from inflater
View rowView = inflater.inflate(R.layout.item_tarfand, parent, false);
// 3. Get the two text view from the rowView
Button BtnTarfandList = (Button) rowView.findViewById(R.id.btnListTarfand);
// 4. Set the text for textView
BtnTarfandList.setText(itemsArrayList.get(position ).getTitle());
// 5. retrn rowView
return rowView;
}
smemamian
شنبه 24 اسفند 1392, 14:06 عصر
منظور شما از "هر آیتم" چیه ؟
منظورتون اینه که وقتی روی هر سطر که کلیک کردید کار متفاوتی انجام بده ؟ به عبارت
ساده تر سطر اول با سطر دوم و... متفاوت عمل کنه ؟
یا اینکه
در سطرها Viewهای مختلفی وجود داره و می خواهید روی هر View که کلیک شد یک
کار متفاوت انجام بده ؟
MMNNNM
شنبه 24 اسفند 1392, 14:10 عصر
منظور شما از "هر آیتم" چیه ؟
منظورتون اینه که وقتی روی هر سطر که کلیک کردید کار متفاوتی انجام بده ؟ به عبارت
ساده تر سطر اول با سطر دوم و... متفاوت عمل کنه ؟
یا اینکه
در سطرها Viewهای مختلفی وجود داره و می خواهید روی هر View که کلیک شد یک
کار متفاوت انجام بده ؟
نه من یک لیست ویو دارم که توش مثلا 20 تا آیتم دارم می خوام با کلیک رو هر آیتم یه Toastنمایش بده مثلا .
اما کار نمی کنه !!!
rubiks.kde
شنبه 24 اسفند 1392, 14:12 عصر
منظورت رو نمیفهمم ولی این کد Adapter منه
تو این Adapterمن به آیتم های لیست ویو settextcolor و settextSizeو... هم میدم که الان از کد ها برداشتم
کارم خیلی گیره
public Myadapter(Context context, ArrayList<item> itemsArrayList) {
super(context, R.layout.item_tarfand, itemsArrayList);
this.context = context;
this.itemsArrayList = itemsArrayList;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 1. Create inflater
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
// 2. Get rowView from inflater
View rowView = inflater.inflate(R.layout.item_tarfand, parent, false);
// 3. Get the two text view from the rowView
Button BtnTarfandList = (Button) rowView.findViewById(R.id.btnListTarfand);
// 4. Set the text for textView
BtnTarfandList.setText(itemsArrayList.get(position ).getTitle());
// 5. retrn rowView
return rowView;
}
مشکل از همین button است.از طریق xml قابلیت فکوس رو برای button غیر فعال کنید.
android:focusable="false"
MMNNNM
شنبه 24 اسفند 1392, 14:20 عصر
مشکل از همین button است.از طریق xml قابلیت فکوس رو برای button غیر فعال کنید.
android:focusable="false"
درست نشد باز !!:(((
MMNNNM
شنبه 24 اسفند 1392, 17:09 عصر
کسی نمیدونه باید چی کار کنم ؟؟
خیلی کارم گیره :(
rubiks.kde
شنبه 24 اسفند 1392, 17:48 عصر
کسی نمیدونه باید چی کار کنم ؟؟
خیلی کارم گیره :(
این دو خصوصیت رو اضافه کردید؟
android:focusable="false"
android:focusableInTouchMode="false"
بغیر از اون button چیها دارید توی هر row
MMNNNM
شنبه 24 اسفند 1392, 18:04 عصر
آره اینا رو به xml آیتم هام اضافه مردم بازم نشد .
هم به Button و هم به LinearLayout که تو xml بود اضافه کردم بازم جواب نمیده !
اینم سورس XML آیتم های لیست ویو
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="vertical"
>
<Button
android:focusableInTouchMode="false"
android:focusable="false"
android:id="@+id/btnListTarfand"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@android:drawable/ic_menu_zoom"
android:drawableRight="@drawable/androidiconbeyzi"
android:text="Button" />
</LinearLayout>
smemamian
شنبه 24 اسفند 1392, 18:26 عصر
مثال زیر رو به صورت ساده نوشتم. هم سطر قابل کلیک شدن هست هم Buttonها :
http://upload7.ir/imgs/2014-03/73360405282085154822.jpg
دریافت :
http://www.uplooder.net/cgi-bin/dl.cgi?key=2d403e6095a3adc26d515d9e6e15062d
MMNNNM
شنبه 24 اسفند 1392, 18:41 عصر
مرسی دریافت کردم . ولی سعی من اینه که از روش خودم استفاده کنم . می خوام دلیلش رو پیدا کنم
smemamian
شنبه 24 اسفند 1392, 18:50 عصر
مشکلات شما :
* شما کلاس Holder تعریف نکردید.
* شما باید برای هر Viewای که می خواهید قابلیت کلیک شدن داشته باشه
تابع setTag مربوط به همون Positioon رو فراخوانی کنید. + ( android:focusable="false" )
viewholder.button.setTag(position);
MMNNNM
شنبه 24 اسفند 1392, 21:35 عصر
فایده نداره ! من یک کد می خوام که همین رو درست کنم کسی نمی تونه کمک کمه ؟؟
مرسی
rubiks.kde
شنبه 24 اسفند 1392, 21:53 عصر
فایده نداره ! من یک کد می خوام که همین رو درست کنم کسی نمی تونه کمک کمه ؟؟
مرسی
شاید مشکل از جایی دیگه باشه
MMNNNM
شنبه 24 اسفند 1392, 22:59 عصر
شاید مشکل از جایی دیگه باشه
آخه لیست ویو براحتی ست میشه من نمیدونم چرا رو آیتم ها تپ می کنم هیچی نمیشه !! :((((
این تایپیک رو ببینید فرم لیست ویو من اینجوریه اینجا (http://barnamenevis.org/showthread.php?438322-%D9%85%D8%B4%DA%A9%D9%84-%D8%AC%D8%B3%D8%AA-%D9%88-%D8%AC%D9%88-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87)
پست 4 یا 5 کد Adapter و item لیست ویو خودم رو گذاشتم اگه میشه کمک کنید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.