我無法從listview
搜索,我嘗試了各種方法,但它不適合我(沒有錯誤)。我有其他的方式來搜索,但我想這樣做。無法使用Android中的自定義數組適配器進行搜索?
下面是代碼
public class MainActivity extends Activity implements TextWatcher {
CustomAdapter mAdapter;
ListView mListview;
EditText search;
List<String> tempCity, cityNames;
String list[];
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
bindComponents();
addListeners();
}
private void addListeners() {
// TODO Auto-generated method stub
search.addTextChangedListener(this);
}
private void init() {
// TODO Auto-generated method stub
mPos = new ArrayList<Integer>();
tempCity = new ArrayList<String>();
cityNames = new ArrayList<String>();
list = getResources().getStringArray(R.array.cityList);
cityNames.addAll(Arrays.asList(list));
}
private void bindComponents() {
// TODO Auto-generated method stub
mListview = (ListView) findViewById(R.id.cityList);
mAdapter = new CustomAdapter();
search = (EditText) findViewById(R.id.eTsearch);
mListview.setAdapter(mAdapter);
}
public class CustomAdapter extends ArrayAdapter<String> {
public CustomAdapter() {
super(MainActivity.this, android.R.layout.simple_list_item_1,
cityNames);
// TODO Auto-generated constructor stub
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return cityNames.size();
}
@Override
public String getItem(int pos) {
// TODO Auto-generated method stub
return cityNames.get(pos);
}
@Override
public long getItemId(int pos) {
// TODO Auto-generated method stub
return pos;
}
@Override
public View getView(int pos, View v, ViewGroup vGroup) {
// TODO Auto-generated method stub
View row = v;
if (row == null) {
row = getLayoutInflater().inflate(R.layout.main_row, null);
}
TextView mCityTv = (TextView) row.findViewById(R.id.itemTv);
mCityTv.setText(cityNames.get(pos));
return row;
}
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
mAdapter.getFilter().filter(s.toString());
}
}
任何幫助將高度讚賞..
由於
什麼功能是你造成麻煩?它是錯誤的還是僅僅是行爲不端?爲前者提供堆棧,後者的細節? – Grambot
沒有錯誤,只是不工作.. – moDev