由于时间的关系,没有细细总结请见谅
package com.example.yangyinzaixian.Zhuangyerenzheng.Fragmet_view;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.example.yangyinzaixian.R;
import com.example.yangyinzaixian.Zhuangyerenzheng.ADB.Listviewadpter;
import com.example.yangyinzaixian.Zhuangyerenzheng.JavabeanFile.Javabean_er;
import com.google.gson.Gson;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import okhttp3.Call;
import static com.zhy.http.okhttp.log.LoggerInterceptor.TAG;
/**
* A simple {@link Fragment} subclass.
*/
public class BlankFragment2 extends Fragment implements View.OnClickListener {
private EditText eSearch;
private Button btn;
private ListView mListView;
private SimpleAdapter adapter;
private ArrayList<Map<String, Object>> mData = new ArrayList<Map<String, Object>>();
private ArrayList<String> mListTitle = new ArrayList<String>();
private ArrayList<String> mListText = new ArrayList<String>();
private ArrayList<String> name=new ArrayList<>();
private ArrayList<String> tab=new ArrayList<>();
Handler myhandler = new Handler();
private View inflate;
public BlankFragment2() {
}
private String url=" http://api.immedc.com/restapi/szrz/getSearch?minid=0&size=2000";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
inflate = inflater.inflate(R.layout.fragment_blank_fragment2, container, false);
RequestQueue requestQueue = Volley.newRequestQueue(getContext());
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
Gson gson = new Gson();
Javabean_er javabean_er = gson.fromJson(s, Javabean_er.class);
List<Javabean_er.DataBean> data = javabean_er.getData();
for (int i = 0; i < data.size(); i++) {
name.add(data.get(i).getName());//mobile
tab.add(data.get(i).getMobile()+"");
}
initView(inflate);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(getContext(), "没有网络", Toast.LENGTH_SHORT).show();
}
});
requestQueue.add(stringRequest);
return inflate;
}
private void initView(View inflate) {
eSearch = (EditText) inflate.findViewById(R.id.text);
btn = (Button) inflate.findViewById(R.id.btn);
mListView = (ListView) inflate.findViewById(R.id.listview);
btn.setOnClickListener(this);
set_ivDeleteText_OnClick();//设置叉叉的监听器
set_mListView_adapter();//给listview控件添加一个adapter
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn:
set_eSearch_TextChanged();
break;
}
}
private void set_eSearch_TextChanged()
{
if(eSearch.getText().length() == 0){
// ivDeleteText.setVisibility(View.GONE);//当文本框为空时,则叉叉消失
}
else {
// ivDeleteText.setVisibility(View.VISIBLE);//当文本框不为空时,出现叉叉
}
myhandler.post(eChanged);
//跟据文本框来改变搜索内容
/*eSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// 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 afterTextChanged(Editable s) {
// TODO Auto-generated method stub
*//**这是文本框改变之后 会执行的动作
* 因为我们要做的就是,在文本框改变的同时,我们的listview的数据也进行相应的变动,并且如一的显示在界面上。
* 所以这里我们就需要加上数据的修改的动作了。
*//*
if(s.length() == 0){
ivDeleteText.setVisibility(View.GONE);//当文本框为空时,则叉叉消失
}
else {
ivDeleteText.setVisibility(View.VISIBLE);//当文本框不为空时,出现叉叉
}
myhandler.post(eChanged);
}
});*/
}
Runnable eChanged = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
String data = eSearch.getText().toString();
mData.clear();//先要清空,不然会叠加
getmDataSub(mData, data);//获取更新数据
adapter.notifyDataSetChanged();//更新
}
};
private void getmDataSub(ArrayList<Map<String, Object>> mDataSubs, String data)
{
int length = mListTitle.size();
for(int i = 0; i < length; ++i){
if(mListTitle.get(i).contains(data) || mListText.get(i).contains(data)){
Map<String,Object> item = new HashMap<String,Object>();
item.put("title", mListTitle.get(i));
item.put("text", mListText.get(i));
mDataSubs.add(item);
}
}
}
private void set_ivDeleteText_OnClick()
{
}
private void getmData(ArrayList<Map<String, Object>> mDatas)
{
Map<String, Object> item = new HashMap<String, Object>();
for (int i = 0; i < name.size(); i++) {
mListTitle.add(name.get(i).toString());
mListText.add(tab.get(i).toString());
item.put("title", mListTitle.get(i));
item.put("text", mListText.get(i));
item = new HashMap<String, Object>();
item.put("title", mListTitle.get(i));
item.put("text", mListText.get(i));
mDatas.add(item);
}
}
private void set_mListView_adapter()
{
getmData(mData);
adapter = new SimpleAdapter(getActivity(),mData,android.R.layout.activity_list_item,
new String[]{"title"},new int[]{android.R.id.text1});
mListView.setAdapter(adapter);
}
}