civilroid

مشکل جستجو در listview

1 ارسال در این موضوع قرار دارد

سلام اساتید

من یک listview دارم که 10 آیتم داره،هر آیتم یک عنوان داره و یک محتوا که با کلیک روی هر آیتم به اکتیویتی نمایش محتوا منتقل میشیم(فقط یک اکتیویتی برای نمایش همه آیتم ها وجود دارد)،تا اینجا مشکلی نیست(دیتابیس ندارم و اطلاعات آیتم ها در string.xml هست)

در بالای این لیست یه edittext گذاشتم برای جستجو بین عناوین آیتم ها که جستجو هم به درستی انجام میشه ولی بعد از جستجو با کلیک روی نتایج جستجو محتوای درست نمایش داده نمیشه:-/فرض کنید در لیست اولیه اولین آیتم "نرم افزار" و دهمین آیتم "سخت افزار" باشه حالا اگر "سخت افزار" رو جستجو کنید چون توی لیست میاد جای اولین آیتم با کلیک روی اون محتوای "نرم افزار" نمایش داده میشه

کسی میتونه راهنمایی کنه؟ممنون:S

این کد اکتیویتی هست که توش لیست قرار داره و سرچ میکنیم:

[shcode=java]import android.app.ListActivity;

import android.content.Intent;

import android.os.Bundle;

import android.text.Editable;

import android.text.TextWatcher;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListView;

import android.widget.TextView;

 

 

public class Search extends ListActivity {

    Button search;

    TextView matn;

    

    public ListView lv;

    public Globals global = new Globals();

    public int Subjects_total_number;

    public String[] Subjects;

   

   

    

   

   

// Listview Adapter

ArrayAdapter adapter;

    

    // Search EditText

    EditText inputSearch;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.search);

       

       

       

 

        lv = (ListView) findViewById(R.id.list_view);

        inputSearch = (EditText) findViewById(R.id.inputSearch);     

         search=(Button) findViewById (R.id.button1);

 

         search.setOnClickListener(new View.OnClickListener() {

             

             @Override

             public void onClick(View arg0) {

                 Intent toFehrest=new Intent(Search.this ,Fehrest.class); ;

                 startActivity(toFehrest);

                 

             }

         });

   

        Subjects_total_number = global.Subjects_total_number;

        Subjects = new String[subjects_total_number];

        for(int x = 1; x < Subjects_total_number+1; x = x+1) {

                String this_subject = "subject_" + String.valueOf(x);

    int resID = getResources().getIdentifier(this_subject, "string", getPackageName());

                Subjects[x-1] = getResources().getString(resID);

               

}

      

  

        

        

        lv = getListView();

        

        adapter = new ArrayAdapter(this, R.layout.list, R.id.tv_list, Subjects);

        lv.setAdapter(adapter);

       

      

      

        /**

         * Enabling Search Filter

         * */

     

            inputSearch.addTextChangedListener(new TextWatcher() {

                 

                @Override

                public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {

                    Search.this.adapter.getFilter().filter(arg0);

     

                }

     

                @Override

                public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,

                        int arg3) {

                    // TODO Auto-generated method stub

              

                }

     

                @Override

                public void afterTextChanged(Editable arg0) {

                    Search.this.adapter.getFilter().filter(arg0);

                   

                }

            });

           

            

              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);

                    }

                        });

 

                    }

     

             

   

   

}[/shcode]

اینم کد اکتیویتی که محتوای آیتم ها بعد از کلیک نمایش داده میشه

[shcode=java]import android.app.Activity;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

public class Show_Subjects extends Activity {

   

   

    Button home;

    Button share;

    static TextView tv1;

    static TextView tv2;

   

    private void shareIt() {

        //sharing implementation here

        Intent intent = new Intent(Intent.ACTION_SEND);

        String one=tv1.getText().toString();

        String two=tv2.getText().toString();

        intent.setType("text/plain");

        String my_string =""+one+"\n"+two;

        intent.putExtra(Intent.EXTRA_TEXT, my_string);

        startActivity(Intent.createChooser(intent, "اشتراک این مطلب از طریق:"));

        }

   

   

      

        public String Subject_number;

        public SharedPreferences shared;

        public SharedPreferences.Editor editor;

        Globals global = new Globals();

        public ImageView iv_favorites;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.show_subjects);

       

 home=(Button) findViewById (R.id.btn_home);

 share=(Button) findViewById (R.id.btn_share);

       

        home.setOnClickListener(new View.OnClickListener() {

           

            @Override

            public void onClick(View arg0) {

               

                Intent toFehrest=new Intent(Show_Subjects.this ,Fehrest.class); ;

                startActivity(toFehrest);

               

            }

        });

       

        share.setOnClickListener(new View.OnClickListener() {

           

            @Override

            public void onClick(View arg0) {

                shareIt();

               

            }

        });

       

   

       

       

      

        iv_favorites = (ImageView) findViewById(R.id.imageView1);

      

        Bundle extras = getIntent().getExtras();

                if (extras != null) {

                        Subject_number = extras.getString("subject_number");

                }

              

                tv1 = (TextView) findViewById(R.id.textView1);

                String stringName_1 = "subject_" + String.valueOf(Subject_number);;

                int resID_1 = getResources().getIdentifier(stringName_1, "string", getPackageName());

                tv1.setText(resID_1);

              

                tv2 = (TextView) findViewById(R.id.textView2);

                String stringName_2 = "subject_text_" + String.valueOf(Subject_number);;

                int resID_2 = getResources().getIdentifier(stringName_2, "string", getPackageName());

                tv2.setText(resID_2);

              

                // Favorites

        shared = getSharedPreferences("Prefs", MODE_PRIVATE);

        editor = shared.edit();

      

        final int subject_number_int = Integer.parseInt(Subject_number);

        final String this_subject = "subject_" + String.valueOf(subject_number_int);

      

        final Boolean b1 = shared.getBoolean(this_subject, false);

        if (b1){

                iv_favorites.setImageResource(R.drawable.favorite_selected);

                }else{

                        iv_favorites.setImageResource(R.drawable.favorite_not_selected);

                }

      

        iv_favorites.setOnClickListener(new OnClickListener() {

                      

                        @Override

                        public void onClick(View v) {

                                Boolean b2 = shared.getBoolean(this_subject, false);

                                if (b2){

                                    editor.putBoolean(this_subject, false);

                                    editor.commit();

                                    iv_favorites.setImageResource(R.drawable.favorite_not_selected);

                                    // show message

                                    String message = getResources().getString(R.string.favorites_removed);

                                    Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();

                                }else{

                                        editor.putBoolean(this_subject, true);

                                        editor.commit();

                                        iv_favorites.setImageResource(R.drawable.favorite_selected);

                                        // show message

                                        String message = getResources().getString(R.string.favorites_added);

                                        Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();

                                }

                    }

                });

    }

}[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری