انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در قسمت جستجوی برنامه اندروید

مشکل در قسمت جستجوی برنامه اندروید

#1
سلام
من از طریق آموزش لیست علاقه مندی ها و ساخت لیست جستجو این دو بخش رو با هم ترکیب کردم
edittext هم به درستی کار میکنه
subject های بخش علاقه مندی ها با بخش جستجو هم یکسان هست
فقط مشکل اینجاست که وقتی تو رویداد onItemClick جستجو کلیک میکنم از برنامه میره بیرون .
میخوام ببینم رویداد onItemClick بخش جستجو رو چطور میتونم درست کنم که به subject های  بخش برنامه علاقه مندی ها بره .
پاسخ

مشکل در قسمت جستجوی برنامه اندروید

#2
سلام.
ساختار دو قسمت ((جستجو)) و ((لیست علاقه مندی ها)) با هم متفاوت بوده است (در واقع منطق آنها را آموزش داده ایم تا برنامه نویسان با کمی تغییر، آنها را در برنامه های اندروید با ساختارهای مختلف، به کار ببرند). حالا که این دو را با هم ترکیب کرده اید، باید ببینید که تغییرات کافی برای تطابق آنها با ساختار مورد نظرتان را انجام داده اید یا خیر. 
نمیشه دقیقا گفت مشکل از چیه. بروید به Activity مربوط به ((جستجو))، سپس در بخش مربوط به کدهای اشاره بر روی هر item (یعنی onItemClick) ، کدها را یک بار بخوانید و ببینید که با ساختار برنامه اندروید شما، هماهنگی دارد یا خیر.
اگر کدها به نظرتان بدون مشکل بود، آنگاه باید باید خطایابی کنید :

کلید شماره 813

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط mpi

مشکل در قسمت جستجوی برنامه اندروید

#3
کد  قسمت onItemClick رو در قسمت جستجو تغییر دادم
همه چیز به درستی کار میکنه ولی نتیجه جستجو فقط اولین ایتم میاد یا بعضی اوقات چند ایتم بعدی نمایس داده میشه
خواهش میکنم یه راهنمایی بفرمایید ، این جستجو رو میخوام برای ساختار آموزش علاقه مندی ها بکار ببرم .
هر کاری کردم نشد


------------------------
 
کد پی‌اچ‌پی:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @
Override
        
public void onItemClick(AdapterView<?> parent, final View view,
            int position, long id) {                       
                    Intent i = new Intent(getApplicationContext(), Show_Subjects.class);
                    String Subject_number = String.valueOf(position+1);
                    i.putExtra("subject_number", Subject_number);
                    startActivity(i);      
        }

      });
                           
    } 
 
پاسخ

مشکل در قسمت جستجوی برنامه اندروید

#4
روش setOnItemClickListener برای تعیین کدهایی که هنگام اشاره بر روی item ها باید اجرا شوند، به کار می رود. بنابراین (و البته با توجه به کدی که در آن نوشته اید)، ربطی به تعداد item ها ندارد. شما باید ببینید که هنگام نسبت دادن Adapter به ListView ، چکونه تعداد item ها را مشخص کرده اید. تعداد item ها معمولا بر اساس یک آرایه یا لیست آرایه ای که Adapter دریافت می کند، تعیین می شود.
مثلا کلید زیر را ببینید :

کلید شماره 843

در آن، ابتدا آرایه ای به صورت زیر تعریف شده :

کد پی‌اچ‌پی:
public String[] my_items = {"key_1",
                                      
"key_2",
                                      
"key_3",
                                      
"key_4",
                                      
"key_5",
                                      
"key_6",
                                      
"key_7",
                                      
"key_8",
                                      
"key_9",
                                      
"key_10",
                                      
"key_11",
                                      
"key_12",
                                      
"key_13",
                                      
"key_14",
                                      
"key_15",
                                      
"key_16",
                                      
"key_17",
                                      
"key_18",
                                      
"key_19",
                                      
"key_20"
                                             
}; 

بعد هنگام تعیین Adapter ، آن آرایه است که تعداد item ها را مشخص می کند (و همچنین عنوان های آنها را) :

کد پی‌اچ‌پی:
setListAdapter(new MyAdapter(this
                                       
android.R.layout.simple_list_item_1
                                       
R.id.textView1,
                                       
my_items)); 

و کدهای Adapter :

کد پی‌اچ‌پی:
private class MyAdapter extends ArrayAdapter<String>{

                public 
MyAdapter(Context contextint resourceint textViewResourceId,
                                
String[] strings) {
                        
super(contextresourcetextViewResourceIdstrings);
                        
// TODO Auto-generated constructor stub
                
}
                
                @
Override
                
public View getView(int positionView convertViewViewGroup parent) {
                        
LayoutInflater inflater = (LayoutInflatergetSystemService(Context.LAYOUT_INFLATER_SERVICE);
                        
View row inflater.inflate(R.layout.list_itemparentfalse);
                        
                        
String stringName "string_key_" String.valueOf(position+1); 
                        
int string_res_ID getResources().getIdentifier(stringName,"string",getPackageName());
                        
String my_string getResources().getString(string_res_ID);
                        
TextView tv = (TextViewrow.findViewById(R.id.textView1);
                        
tv.setText(my_string);
                        
                        
String imageName "key_" String.valueOf(position+1); 
                        
int image_res_ID getResources().getIdentifier(imageName,"drawable",getPackageName());
                        
ImageView iv = (ImageViewrow.findViewById(R.id.imageView1);
                        
iv.setImageResource(image_res_ID);
        
                        return 
row;
                }
                
                
        } 

بنابراین بر اساس توضیحات بالا، شما در کدهای خود ببینید که Adapter را چگونه تعریف کرده اید و آرایه یا لیست آرایه ای که به آن می دهید، دارای چه تعداد item است.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط mpi ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان