简体   繁体   English

排序列表视图搜索数据

[英]sorting list view search data

hi i am new android developer and want to know how to sort my data after clicking the search button. 您好,我是新的android开发人员,想知道单击搜索按钮后如何对我的数据进行排序。 but the in search my data is not in alphabetical order. 但是在搜索中我的数据不是按字母顺序排列的。 don't know how to sort data in this search activity..show me the list as given in the string. 不知道如何在此搜索活动中对数据进行排序..请向我显示字符串中给出的列表。 want that the search activity show my data in alphabetical order. 希望搜索活动按字母顺序显示我的数据。

public class Search extends Activity {

      protected static final Object TAG_DISTANCE = null;

    // Listview Adapter
    ArrayAdapter<String> adapter;

    // Search EditText
    EditText inputSearch;

    // List view
    private ListView lv;


    // ArrayList for Listview
    ArrayList<HashMap<String, String>> productList;

    @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
    @SuppressLint("NewApi")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search);
        ActionBar bar = getActionBar();
        bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#6B8E23")));
        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);

        // Listview Data
        String products[] ={"Atherosclerosis","Coranary Heart Disease","Stable Angina","Unstable Angina","Myocardial Infarction","Cardiac Risk of Non-Cardiac Surgery","Sinus Rhythms","Atrial Tachyarrhthmias",
             "Supraventricular Tachycardias","Ventricular Tachyarrhthmias","Sinoatrial Disease","Atrioventricular and Bundle Branch Block",
             "Peripheral Arterial Disease","Aortic Aneurysm","Aortic Dissection","Hypertension",
             "Rheumatic Heart Disease","Mitral Stenosis","Mitral Regurgitaion","Mitral Valve Prolapse","Aortic Stenosis","Aortic Regurgitation","Tricuspid Stenosis","Tricuspid Regurgitation","Pulmonary Stenosis","Pulmonary Regurgitation","Infective Endocarditis","Persistent Ductus Arteriosis","Conginital Heart Disease","Diseases of the Myocardium",
             "Diseases of the Pericardium"};

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

        // Adding items to listview
        adapter = new ArrayAdapter<String>(this, R.layout.list_items, R.id.searchdisease,products);
        lv.setAdapter(adapter);



        /**
         * Enabling Search Filter
         * */
        inputSearch.addTextChangedListener(new TextWatcher() {

            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                    int arg3) {
                // TODO Auto-generated method stub

            }



            @Override
            public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                // When user changed the Text
                Search.this.adapter.getFilter().filter(cs);   
            }
        });
    }    
}

Try this. 尝试这个。

        Arrays.sort(product);
        for(int i = 0; i < products.length; i++)
            System.out.println(products[i]);

And also 并且

adapter.notifyDataSetChanged(); adapter.notifyDataSetChanged(); in TextChanged. 在TextChanged中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM