package cn.daixiaodong.myapp.activity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import com.avos.avoscloud.AVException;
import com.avos.avoscloud.AVObject;
import com.avos.avoscloud.AVQuery;
import com.avos.avoscloud.FindCallback;
import java.util.ArrayList;
import java.util.List;
import cn.daixiaodong.myapp.R;
import cn.daixiaodong.myapp.activity.common.BaseActivity;
import cn.daixiaodong.myapp.adapter.UserPublishListAdapter;
/**
* 搜索界面
*/
public class SearchActivity extends BaseActivity {
private ArrayList<AVObject> mData;
private UserPublishListAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
Toolbar toolbar = (Toolbar) findViewById(R.id.id_toolbar);
setSupportActionBar(toolbar);
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}
SearchView searchView = (SearchView) findViewById(R.id.id_search_view);
searchView.setIconified(false);
searchView.onActionViewExpanded();
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showToast("搜索被点击");
}
});
setUpRecyclerView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
showResult(query);
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
showResult(newText);
return true;
}
});
}
private void setUpRecyclerView() {
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.id_rv_search_result);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(linearLayoutManager);
mData = new ArrayList<>();
mAdapter = new UserPublishListAdapter(this, mData);
recyclerView.setAdapter(mAdapter);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == android.R.id.home){
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
private void showResult(String newText) {
if (newText.isEmpty()) {
return;
}
AVQuery<AVObject> query = new AVQuery<>("dream");
Log.i("newText", newText);
query.whereContains("title", newText);
query.setLimit(10);
query.findInBackground(new FindCallback<AVObject>() {
@Override
public void done(List<AVObject> list, AVException e) {
if (e != null) {
e.printStackTrace();
return;
} else {
Log.i("resultSize", list.size() + "");
mData.clear();
mData.addAll(list);
mAdapter.notifyDataSetChanged();
}
}
});
}
}