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



مشکل در ساخت جستجوزمان کنونی: ۱۳۹۵/۰۹/۱۸، ۱۲:۴۳ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: darkhah1
آخرین ارسال: mahdi10539
پاسخ 11
بازدید 248

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

مشکل در ساخت جستجو

#1
سلام بنده برای ساخت جستجو در لیست ویو از آموزش همین سایت استفاده کردم و همچیزش درسته ولی وقتی چیزی رو جستجو میکنم و توی لیست ویو ایتم های که کلمه مورد نظر من توش نیست حذف میشه قطعا ایتم های لیست طبق جستجو عوض میشه ولی با کلیک کردن روی انها باز صفحه ای مربوط به لیستی که جستجو نشده باز میکنه.
مثال
1-زهرا
2-مینا
3-مریم
4-فاطمه
جستجو حرف "ف"
1-فاطمه
با کلیک کردن روی فاطمه باز محتوای لیست اصلی یعنی زهرا باز می شود.
این کد کلیک کردن.
خواهشا کمک کنید.


کد:
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);
               i.putExtra("subject_number", Subject_number);
               startActivity(i);    
           }

         });
       }
پاسخ

مشکل در ساخت جستجو

#2
مشکل اینجاست که شما دارین مقدار موقعیت رو از ردیف های ListView میگیرید نه از Adapter

اگر از فیلتر استفاده نکیند این روش شما موردی نداره
اما زمان فیلتر چون مقدار ردیفهای لیست تغییر میکنه و جابجا میشن دیگه این روش پایدار نیست و جواب نمیده


بجای این کد:
کد پی‌اچ‌پی:
          String Subject_number String.valueOf(position); 

از این کد استفاده کنید: ; داده رو مستقیم از adapter میگیره
کد پی‌اچ‌پی:
          String Subject_number lv.getAdapter().getItem(position).toString(); 
پاسخ
 سپاس شده توسط darkhah1 ، admin

مشکل در ساخت جستجو

#3
ممنون از راهنمایی شما , اینکار را انجام دادم برنامه فکوس کلوز میده میگی چیکار کنم؟؟ Rolleyes
پاسخ

مشکل در ساخت جستجو

#4
کدهای مربوط به کلاس adapter و activity مورد نظر رو بزارید تا بهتر بررسی بشه
پاسخ

مشکل در ساخت جستجو

#5
عالی بود خیلی وقته دنبال این کد هستم سپاسگزارم   Shy 
طراحی دکوراسیون داخلی
پاسخ

مشکل در ساخت جستجو

#6
کد:
package com.darkhah1.madarek;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class Search extends Activity {
     

// List view
   private ListView lv;
   
   // Listview Adapter
   ArrayAdapter<String> adapter;
   
   // Search EditText
   EditText inputSearch;
   
   
   // ArrayList for Listview
   ArrayList<HashMap<String, String>> productList;

       @Override
       protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.search);
             
               // Listview Data
       String products[] = getResources().getStringArray(R.array.search);
       
       lv = (ListView) findViewById(R.id.list_view11);
       inputSearch = (EditText) findViewById(R.id.inputSearch);
       
       // Adding items to listview
       adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.subject_name, products);
       lv.setAdapter(adapter);
       
       /**
        * Enabling Search Filter
        * */
       inputSearch.addTextChangedListener(new TextWatcher() {
           
           @Override
           public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
               // When user changed the Text
               Search.this.adapter.getFilter().filter(cs);  
           }
           
           @Override
           public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                   int arg3) {
               // TODO Auto-generated method stub
               
           }
           
           @Override
           public void afterTextChanged(Editable arg0) {
               // TODO Auto-generated method stub                          
           }
       });
     
       //  after click
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

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

         });
       }
}
این کد کامل جستجو منه خواهش کمکم کنید؟
پاسخ

مشکل در ساخت جستجو

#7
این قسمت از کدتون رو تغییر بدید درست میشه

کد پی‌اچ‌پی:
adapter = new ArrayAdapter<String>(thisR.layout.list_itemR.id.subject_nameproducts); 
به
کد پی‌اچ‌پی:
adapter = new ArrayAdapter<String>(thisandroid.R.layout.simple_list_item_1products); 
پاسخ
 سپاس شده توسط darkhah1

مشکل در ساخت جستجو

#8
سپاس از جوابتون ولی دوباره هنگام کلیک روی ایتم لیست ویو جستجو بسته میشه. کمکم کنید
پاسخ

مشکل در ساخت جستجو

#9
خب درسته دیگه
چون بهش گفتید اگه روی ایتم کلیک شد بره به یه اکتیویتی دیگه
اکتیویتی subject_number رو باز میکنه
پاسخ

مشکل در ساخت جستجو

#10
کلا 65 تا string  دارم با نام subject_1 تا subject_65  و این متن ها با کلیک کردن روی آنها توی یه اکتیویتی به اسم Show_Subjects نمایش داده میشه
در حالبت که از این کد استفاده میکنم
کد:
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);
             i.putExtra("subject_number", Subject_number);
             startActivity(i);    
         }


برنامه کامل کار میکنه ولی با جستجو که ایتم ها مکانشون جابجا میشه مثلا 3 رو جستجو میکنم 3 فقط توی لیست باقی میمونه ولی با کلیک کردن روی آن ایتم محتوای 1 باز میشه
مشکل بنده اینجاس که با تغییر کد به کدی که شما گفتین هنگام کلیک روی لیست ویو جستجو برنامه بسته میشه
پاسخ

مشکل در ساخت جستجو

#11
اگه حتما نیاز با موقعیت و شماره ایتم دارید باید از Custom Adaptor استفاده کنید . و متد getitemid مربوط به custom adaptor رو بازنویسی کنید
یا یک متد جدید بهش اضافه کنید.

با این adaptor فعلی نمیتونید.
پاسخ


پرش به انجمن:


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

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)