View Full Version : مشکل جست و جو در برنامه
  
MMNNNM
شنبه 05 بهمن 1392, 21:06 عصر
سلام دوستان من از Custom adaoter استفاده کردم
قبلش درست کار می کرد قسمت سرچ ولی الان چیزی پیدا نمی کنه !
اگه میشه کمکم کنید .
public class khavas extends ListActivity {
    Myadapter adapter;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.khavas);
        adapter = new Myadapter(this, generateData());
        setListAdapter(adapter);
        EditText ed = (EditText) findViewById(R.id.editText1);
        final ListView lv = (ListView) findViewById(android.R.id.list);
        lv.setTextFilterEnabled(true);
        ed.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
            }
            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                                          int arg3) {
                // TODO Auto-generated method stub
            }
            @Override
            public void afterTextChanged(Editable arg0) {
                khavas.this.adapter.getFilter().filter(arg0);
            }
        });
    }
    public ArrayList<item> generateData() {
        ArrayList<item> models = new ArrayList<item>();
        for (int i = 0; i < G.title.length; i++)
        {
            models.add(new item(G.title[i], G.khavas[i]));
        }
        return models;
    }
}
rubiks.kde
شنبه 05 بهمن 1392, 22:01 عصر
باتوجه به چیزی که گذاشتید این قسمت رو تغییر بدید
khavas.this.adapter.getFilter().filter(arg0.toStri ng());
MMNNNM
شنبه 05 بهمن 1392, 22:13 عصر
کد اشتباست
اینجا ng چی کار می کنه ؟
مرسی
#root#
شنبه 05 بهمن 1392, 22:24 عصر
کد اشتباست
اینجا ng چی کار می کنه ؟
مرسی
سلام
اشتباه نیست ، شما مثل بنده تازه واردی ، toString هستش ، علتش معلوم نیست چرا سیستم انجمن بعضی وقتا موقع ارسال مطلب بین کدها فاصله میندازه .
MMNNNM
شنبه 05 بهمن 1392, 22:27 عصر
آها الان اینم دست کردم ولی باز قسمت جست و جو کا نمی کنه .
نمیدونم چی کار کنم . کارم گیره 2 3 روزه درگیرم .
MMNNNM
یک شنبه 06 بهمن 1392, 10:39 صبح
این کد کلاس Myadapter
public class Myadapter extends ArrayAdapter<item> {
    private final Context         context;
    private final ArrayList<item> itemsArrayList;
    public Myadapter(Context context, ArrayList<item> itemsArrayList) {
        super(context, R.layout.item, 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, parent, false);
        // 3. Get the two text view from the rowView
        TextView labelView = (TextView) rowView.findViewById(R.id.txtTitle);
        TextView valueView = (TextView) rowView.findViewById(R.id.txtKhavas);
        // 4. Set the text for textView
        labelView.setText(itemsArrayList.get(position).get Title());
        valueView.setText(itemsArrayList.get(position).get Counter());
        // 5. retrn rowView
        return rowView;
    }
}
اینم کد کلاس item
public class item {
    private String title;
    private String counter;
    public item(String title) {
        this(title, null);
    }
    public item(String title, String counter) {
        super();
        this.title = title;
        this.counter = counter;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getCounter() {
        return counter;
    }
    public void setCounter(String counter) {
        this.counter = counter;
    }
}
rubiks.kde
یک شنبه 06 بهمن 1392, 10:48 صبح
الان جست و جو بر چه اساسه؟یعنی باید title جست و جو بشه یا counter ?
MMNNNM
یک شنبه 06 بهمن 1392, 11:09 صبح
نمیدونم ! 
الان نمیدونم چجوری همین رو تعیین کنم !
میخوام Title جست و جو شه
rubiks.kde
یک شنبه 06 بهمن 1392, 12:12 عصر
مشکل از اون فیلتر هست.شما بیایید تابع فیلتر رو خودتون بنویسید ، به این صورت که با هر بار تغییر مقدار editText تابع شما اجرا بشه و فیلتر صورت بگیره.
MMNNNM
یک شنبه 06 بهمن 1392, 12:17 عصر
اگه میشه کمک کنید تابع رو بنویسم . کدش رو بم بدید 
مرسی
rubiks.kde
یک شنبه 06 بهمن 1392, 12:41 عصر
این یه مثال امیدوارم مشکل حل بشه.ولی بهتره قبل از تمام اینها به دانش خودتون هم ایمان داشته باشید.
دانلود (http://s5.picofile.com/file/8110661534/FilterSample.zip.html)
smemamian
یک شنبه 06 بهمن 1392, 12:45 عصر
نکته مهم : آداپتری که شما نوشتی کلاس ViewHolder نداره ! این هزینه ی اسکرول کردن ListView رو چندین برابر می کنه !
rubiks.kde
یک شنبه 06 بهمن 1392, 14:22 عصر
نکته مهم : آداپتری که شما نوشتی کلاس ViewHolder نداره ! این هزینه ی اسکرول کردن ListView رو چندین برابر می کنه !
 
بله حق باشماست ولی در اینجا هدف تنها ارائه مثال بود.
MMNNNM
دوشنبه 14 بهمن 1392, 11:56 صبح
مشکل من حل شد ممنون از شما .
حالا می خوام کلمه ای مه یوزر وارد میکنه برای جست و جو تو لیست ویو هایلایت بشه یا رنگش قرمز بشه .
اگه میشه کمک کنید .
rubiks.kde
دوشنبه 14 بهمن 1392, 12:48 عصر
توی متن یافته شده با استفاده از html اون کلمه رو تغییر رنگ بده.
نتایج رو توی چه view نمایش میدی؟
MMNNNM
دوشنبه 14 بهمن 1392, 13:17 عصر
کد html بلدم ولی نمیدونم چجورس استفاده کنم .
نتایج رو توی چه view نمایش میدی؟ 						
منظورت رو نفهمیدم ولی توی لیست ویو :دی
rubiks.kde
دوشنبه 14 بهمن 1392, 13:45 عصر
این یه مثال از این کار برای textview هست
TextView myTV = (TextView)findViewById(R.id.textView1);
String  textString = "StackOverFlow Rocks!!!"; 
Spannable spanText = Spannable.Factory.getInstance().newSpannable(textS tring);
spanText.setSpan(new BackgroundColorSpan(0xFFFFFF00), 14, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
myTV.setText(spanText);
منظورم این بود که توی لیست هم ایتم ها textview هستن؟
MMNNNM
دوشنبه 14 بهمن 1392, 13:57 عصر
آره TextView هست
خب من اینو کجا قرار بدم ؟ نمیدونم ؟
rubiks.kde
سه شنبه 15 بهمن 1392, 12:14 عصر
یه مثال برای این کار آماده کردم بهتره اون رو طوری که میخوایی استفاده کنی.
تاپیک (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&p=1969167&viewfull=1#post1969167)
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.