当我点击Android listview标题时如何取消排序排序列表?

时间:2011-09-15 12:32:00

标签: android android-listview

我有一个列表视图,我创建了标题(通过使用addHeader(layout)),我的标题包含textviews,我为标题中的一个textviews创建了click事件,并在事件中编写了已排序的代码。 / p>

package com.sample;



import java.util.Arrays;
import java.util.Collections;
import java.util.List;


import android.R.array;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;

public class SampleActivity extends Activity {
    /** Called when the activity is first created. */
       List<String> ls;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ListView lst=(ListView)findViewById(R.id.bookListView);
       View v = getLayoutInflater().inflate(
                R.layout.header, null);
        lst.addHeaderView(v);

              lst.setAdapter(new ArrayAdapter<String>
                   (this, android.R.layout.simple_list_item_1, COUNTRIES));
               ls=Arrays.asList(COUNTRIES);
              // Collections.sort(ls);
              TextView bt=(TextView)v.findViewById(R.id.item2);
              bt.setOnClickListener(new View.OnClickListener() {

                           @Override
                           public void onClick(View v) {
                                  // TODO Auto-generated method stub

                                   Arrays.sort(COUNTRIES);
                                   lst.invalidateViews();

         }});

          static final String[] COUNTRIES = new String[] {
          "Afghanistan", "japan", "China",  "Barma",

       };

}

它的工作正常,但是当我再次点击标题时,我想从排序列表中返回未列出的列表,那么我该怎么做才能帮助我。

谢谢, @nag。

1 个答案:

答案 0 :(得分:2)

在初始化时更改您在适配器中设置的数据(设置未排序的数据),并使用adapter.notifyDataSetChanged()来获得效果。