如何在android中自动完成textview和在android中搜索数据加载项listview?
我正在开发autocomplete textview,并使用了Web服务中的搜索。但我的问题是autocomplete textview设置listview,但我看不到listview更新。如何可能。我下面的代码>请帮助我如何在android中自动完成textview和在android中搜索数据加载项listview?,android,listview,autocompletetextview,Android,Listview,Autocompletetextview,我正在开发autocomplete textview,并使用了Web服务中的搜索。但我的问题是autocomplete textview设置listview,但我看不到listview更新。如何可能。我下面的代码>请帮助我 public class AddUserListActivity extends Activity{ // private SimpleSectionAdapter<String> sectionAdapter; ListView listUser;
public class AddUserListActivity extends Activity{
// private SimpleSectionAdapter<String> sectionAdapter;
ListView listUser;
private List<String> lastName = new ArrayList<String>();
DtoUserDetail mApplication;
ArrayList<DtoUserList> ListArray;
private UserListAdapter objAdapter;
Button AddFriends;
DbServices Dbs = new DbServices();
Button btnBackAddUser;
Button btnAddFriends;
Button btnBackToMain;
RelativeLayout searchBar;
Button btnSearchSend;
AutoCompleteTextView editSearchText;
ArrayList<DtoSearchUser> searchUserList;
boolean searchStatus = false;
List<String> searchUserNameList;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.add_user_list);
listUser = (ListView)findViewById(R.id.listView);
mApplication = (DtoUserDetail)AddUserListActivity.this.getApplicationContext();
btnBackToMain = (Button)findViewById(R.id.btnBackFromAddFriends);
searchBar = (RelativeLayout)findViewById(R.id.searchbar);
btnSearchSend = (Button)findViewById(R.id.btnSearchSend);
editSearchText =(AutoCompleteTextView)findViewById(R.id.editSearchText);
// objAdapter.notifyDataSetChanged();
btnSearchSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
searchUserList = new ArrayList<DtoSearchUser>();
searchUserNameList = new ArrayList<String>();
Log.v("adduserlist", "searchtext:" + editSearchText.getText().toString());
searchUserList = new DbServices().SendSearchText(editSearchText.getText().toString(),mApplication.getUserid()+"");
for(int i=0;i<searchUserList.size();i++)
{
searchUserNameList.add(searchUserList.get(i).getUsers());
}
Log.v("log", " search list userName " + searchUserNameList);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(AddUserListActivity.this, android.R.layout.simple_dropdown_item_1line, searchUserNameList);
editSearchText.setAdapter(adapter);
}
});
editSearchText.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
// TODO Auto-generated method stub
Log.v("log"," position in autocomplete " + pos);
String toUserId = searchUserList.get(pos).getUserid()+"";
Log.v("log"," autocomplete USERID " + searchUserList.get(pos).getUserid() + " " + searchUserList.get(pos).getLast_name());
String status= Dbs.addFriends(mApplication.getUserid()+"",toUserId);
Toast.makeText(AddUserListActivity.this, "ToUserId : " +toUserId + " status"+ status , Toast.LENGTH_LONG).show();
}
});
btnAddFriends=(Button)findViewById(R.id.btnAddFriends);
btnAddFriends.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(searchStatus==false)
{
searchBar.setVisibility(View.VISIBLE);
searchStatus = true;
}
else
{
searchBar.setVisibility(View.GONE);
searchStatus = false;
}
}
});
btnBackToMain.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
AddUserListActivity.this.finish();
}
});
if (isNetworkAvailable()) {
new MyTask().execute();
} else {
showToast("No Netwrok Connection!!!");
//this.finish();
}
}
class MyTask extends AsyncTask<Void, Void, Void> {
ProgressDialog pDialog;
@Override
protected void onPreExecute() {
pDialog = new ProgressDialog(AddUserListActivity.this);
pDialog.setMessage("Loading...");
pDialog.show();
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
// ListArray = new DbServices().GetUserList(""+mApplication.getUserid());
ListArray = new DbServices().GetFriendsList(""+mApplication.getUserid());
return null;
}
@Override
protected void onPostExecute(Void result) {
if (null != pDialog && pDialog.isShowing()) {
pDialog.dismiss();
}
if (null == ListArray || ListArray.size() == 0) {
showToast("No data found from web!!!");
// AddUserListActivity.this.finish();
} else {
setAdapterToListview();
}
super.onPostExecute(result);
}
}
// setAdapter
public void setAdapterToListview() {
for(int i=0;i<ListArray.size();i++)
{
lastName.add(ListArray.get(i).getLast_name());
}
for(int j=0;j<SortingArraylist(ListArray).size();j++)
{
}
objAdapter = new UserListAdapter(AddUserListActivity.this,SortingArraylist(ListArray));
listUser.setAdapter(objAdapter);
listUser.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View arg1,
int position, long id) {
Log.v("log"," position of item " + position + " item first name " + ListArray.get(position).getFirst_name());
Intent i_options = new Intent(AddUserListActivity.this,friendsHoldActivity.class);
i_options.putExtra("pos", ListArray.get(position).getUserid());
//startActivity(i_options);
startActivity(i_options);
}
});
}
class ListSectionizer implements Sectionizer<String> {
@Override
public String getSectionTitleForItem(String itemName) {
return itemName.toUpperCase().substring(0, 1);
}
}
public static Comparator<String> StringComparator = new Comparator<String>() {
public int compare(String app1, String app2) {
String stringName1 = app1;
String stringName2 = app2;
return stringName1.compareToIgnoreCase(stringName2);
}
};
private List<String> Sorting(List<String> Names) {
Collections.sort(Names, StringComparator);
return Names;
}
public static Comparator<DtoUserList> StringArrayComparator = new Comparator<DtoUserList>() {
public int compare(DtoUserList app1, DtoUserList app2) {
DtoUserList stringName1 = app1;
DtoUserList stringName2 = app2;
return stringName1.getLast_name().compareToIgnoreCase(stringName2.getLast_name());
}
};
private ArrayList<DtoUserList> SortingArraylist(ArrayList<DtoUserList> userDetail){
Collections.sort(userDetail ,StringArrayComparator);
return userDetail;
}
// check internet connection
public boolean isNetworkAvailable() {
ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
// Toast is here...
private void showToast(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
}
public类AddUserListActivity扩展活动{
//私有SimpleSectionAdapter节适配器;
ListView listUser;
private List lastName=new ArrayList();
DtoUserDetail映射应用;
ArrayList列表数组;
私有用户列表适配器objAdapter;
按钮添加好友;
DbServices Dbs=新的DbServices();
按钮btnBackAddUser;
按钮btnAddFriends;
按钮btnBackToMain;
相对搜索栏;
按钮btnSearchSend;
AutoCompleteTextView编辑搜索文本;
ArrayList searchUserList;
布尔searchStatus=false;
列表搜索用户名列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.add_user_list);
listUser=(ListView)findViewById(R.id.ListView);
MapApplication=(DtoUserDetail)AddUserListActivity.this.getApplicationContext();
btnBackToMain=(按钮)findViewById(R.id.btnBackFromAddFriends);
searchBar=(RelativeLayout)findViewById(R.id.searchBar);
btnSearchSend=(按钮)findViewById(R.id.btnSearchSend);
editSearchText=(AutoCompleteTextView)findViewById(R.id.editSearchText);
//notifyDataSetChanged();
btnSearchSend.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
searchUserList=新的ArrayList();
searchUserNameList=新的ArrayList();
Log.v(“adduserlist”,“searchtext:+editSearchText.getText().toString());
searchUserList=new DbServices().SendSearchText(editSearchText.getText().toString(),mApplication.getUserid()+“”);
对于(int i=0;i父级,视图arg1,
内部位置,长id){
Log.v(“Log”,“项的位置”+位置+“项名”+列表数组.get(position).getFirst_name());
Intent i_options=newintent(AddUserListActivity.this,friendsHoldActivity.class);
i_options.putExtra(“pos”,listary.get(position.getUserid());
//startActivity(i_选项);
startActivity(i_选项);
}
});
}
类ListSectionizer实现Sectionizer{
@凌驾
公共字符串getSectionTitleForItem(字符串项名称){
返回itemName.toUpperCase()子字符串(0,1);
}
}
公共静态比较器StringComparator=新比较器(){
公共整数比较(字符串app1、字符串app2){
字符串stringName1=app1;
字符串stringName2=app2;
返回stringName1.compareToIgnoreCase(stringName2);
}
};
私有列表排序(列表名称){
Collections.sort(名称、StringComparator);
返回姓名;
}
公共静态比较器StringArrayComparator=新比较器(){
公共整数比较(DtoUserList app1、DtoUserList app2){
DtoUserList stringName1=app1;
DtoUserList stringName2=app2;
返回stringName1.getLast_name().compareToIgnoreCase(stringName2.getLast_name());
}
};
私有ArrayList排序ArrayList(ArrayList用户详细信息){
Collections.sort(userDetail、StringArrayComparator);
返回用户详细信息;
}
//检查互联网连接
公共布尔值isNetworkAvailable(){
ConnectivityManager connectivity=(ConnectivityManager)getSystemService(Context.connectivity_服务);
if(连接性==null){
返回false;
}否则{
NetworkInfo[]info=connectivity.getAllNetworkInfo();
如果(信息!=null){
对于(int i=0;i
在编辑搜索文本上应用添加文本更改列表
inonTextChanged方法查看是否在数据库或arrayList或您拥有的任何内容中找到匹配的内容….比如:arrayList.get(i).toString().toLowerCase().contains(editSearchText.getText().toString())1.您为什么对notifyDataSetchange方法进行了注释?2.您应该在Onclick methodnotifyDataSetchange方法中调用此方法不起作用!!!是的,忘了告诉您…使用自动完成文本视图