Eclipse中citysearchActibity.java中的内容:package com.app.study;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;public class CitySearchActivity extends Activity {
    
    List<String> cityList = new ArrayList<String>();
 
    private List<Map<String,String>> data = null;
    private SimpleAdapter adapter = null;
    
    private ListView listView = null;
    private EditText editText = null;
    private Button button = null;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.city_search_list);
        
        listView = (ListView)findViewById(R.id.city_search_list);
        editText = (EditText)findViewById(R.id.city_search_text);
        button = (Button)findViewById(R.id.city_search_button);
        
        initData();
        setData();
        
        button.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                searchCity(editText.getText().toString());
            }
        });
    }
    
    private void initData(){
        
        String[] citys = "杭州,青岛,深圳,广州,成都,长沙,苏州,石家庄,哈尔滨,大连,宁波,临沂,威海,合肥,西安,厦门,上海,常州,香港,重庆,福州,南昌,乌鲁木齐,南京,都江堰,金华,温江".split(",");
        for(String city:citys){
            cityList.add(city);
        }
        
    }
    
    private void setData(){
        data = new ArrayList<Map<String,String>>();
            
        Map<String,String> map = null;
        for(int i = 0; i<cityList.size(); i++){
            map = new HashMap<String, String>();
            map.put("city", cityList.get(i));
            map.put("index", String.valueOf(i+1));
            data.add(map);
        }
        
        adapter = new SimpleAdapter(this, data, R.layout.city_search_list_item, new String[]{"city","index"}, new int[]{R.id.city_search_item_city, R.id.city_search_item_index});
        listView.setAdapter(adapter);
    }
    
    private void searchCity(String city){
        if(cityList.contains(city)){
            cityList.remove(city);
            cityList.add(0, city);
        }
        setData();
    }
}

解决方案 »

  1.   


    public class CitySearchActivity extends Activity {
        
      List<String> cityList = new ArrayList<String>();
      
      private List<Map<String,String>> data = null;
      private SimpleAdapter adapter = null;
        
      private ListView listView = null;
      private EditText editText = null;
      private Button button = null;
        
      @Override
      public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.city_search_list);
        
      listView = (ListView)findViewById(R.id.city_search_list);//获取listview
      editText = (EditText)findViewById(R.id.city_search_text);
      button = (Button)findViewById(R.id.city_search_button);//搜索按钮
        
      initData();初始化数据
      setData();设置数据 适配器
        
      button.setOnClickListener(new OnClickListener() {//设置搜索按钮的监听
      public void onClick(View v) {
      searchCity(editText.getText().toString());//调用searchCity方法
      }
      });
      }
        
      private void initData(){
        
      String[] citys = "杭州,青岛,深圳,广州,成都,长沙,苏州,石家庄,哈尔滨,大连,宁波,临沂,威海,合肥,西安,厦门,上海,常州,香港,重庆,福州,南昌,乌鲁木齐,南京,都江堰,金华,温江".split(",");
      for(String city:citys){
      cityList.add(city);
      }
        
      }
        
      private void setData(){
      data = new ArrayList<Map<String,String>>();
        
      Map<String,String> map = null;
      for(int i = 0; i<cityList.size(); i++){
      map = new HashMap<String, String>();
      map.put("city", cityList.get(i));
      map.put("index", String.valueOf(i+1));
      data.add(map);
      }
        
      adapter = new SimpleAdapter(this, data, R.layout.city_search_list_item, new String[]{"city","index"}, new int[]{R.id.city_search_item_city, R.id.city_search_item_index});
      listView.setAdapter(adapter);//设置适配器 使用SimpleAdapter
      }
        
      private void searchCity(String city){
      if(cityList.contains(city)){
      cityList.remove(city);
      cityList.add(0, city);
      }
      setData();//重新设置数据 适配器 刷新界面。。
      }
    }