package com.cmeiyuan.hello123.activity;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
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.AdapterView.OnItemClickListener;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import com.cmeiyuan.hello123.R;
import com.cmeiyuan.hello123.adapter.FundAdapter1;
import com.cmeiyuan.hello123.api.BaseApi;
import com.cmeiyuan.hello123.api.v2.FundsApi;
import com.cmeiyuan.hello123.bean.v2.Fund;
import com.cmeiyuan.hello123.bean.v2.Funds;
import com.cmeiyuan.hello123.data.FundManager;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
public class SearchActivity extends AnalysisActivity {
private EditText et_key;
private ListView lv_fund;
private FundAdapter1 adapter = new FundAdapter1();
private List<Fund> list;
private List<Fund> result = new ArrayList<Fund>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
lv_fund = (ListView) findViewById(R.id.lv_fund);
et_key = (EditText) findViewById(R.id.et_serach_key);
lv_fund.setAdapter(adapter);
et_key.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if (s.length() == 0) {
adapter.setList(list);
} else {
adapter.setList(getItem(String.valueOf(s)));
}
adapter.notifyDataSetChanged();
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
list = FundManager.getList();
if (list == null || list.size() == 0) {
FundsApi fundApi = new FundsApi();
fundApi.setAsyncCallBack(new BaseApi.AsyncCallBack<Funds>() {
@Override
public void onSuccess(Funds funds) {
FundManager.setList(funds.getItems());
list = FundManager.getList();
adapter.setList(list);
adapter.notifyDataSetChanged();
}
@Override
public void onFailed(BaseApi.Error error) {
}
});
fundApi.get();
}
if (list == null || list.size() == 0) {
try {
InputStream in = getAssets().open("fund.txt");
Gson gson = new GsonBuilder()
.excludeFieldsWithoutExposeAnnotation().create();
list = gson.fromJson(new InputStreamReader(in),
new TypeToken<List<Fund>>() {
}.getType());
} catch (IOException e) {
e.printStackTrace();
}
}
if (list != null) {
adapter.setList(list);
adapter.notifyDataSetChanged();
}
lv_fund.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent = new Intent();
Fund fund = adapter.getList().get(position);
intent.putExtra(AddActivity.FUND, fund);
setResult(RESULT_OK, intent);
finish();
}
});
}
public List<Fund> getItem(String key) {
result.clear();
for (Fund item : list) {
if (item.getFundName().contains(key)) {
result.add(item);
continue;
}
if (item.getFundCode().contains(key)) {
result.add(item);
continue;
}
}
return result;
}
@Override
protected void onInitTopBar(TextView left, TextView right, TextView center) {
left.setText("返回");
right.setVisibility(View.GONE);
}
@Override
protected void onTopBarSelected(View v) {
if (v == getLeftTextView()) {
finish();
}
}
}