Bùi Văn Nguyên

@nguyen225

Viet Nam, Ha Noi

Institution: fffffffff

public class MainActivity extends AppCompatActivity implements SearchView.OnQueryTextListener { //TODO this field will retrieve name from db when user typing name a friend private List<String> _nameFriends = new ArrayList<>(); private Toolbar _toolbar; private RecyclerView _recyclerView; private RecyclerView.LayoutManager _layoutManager; private RecyclerAdapter _adapter; private final int LENGTH_INPUT_MINIMAL = 3; private final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); _toolbar = findViewById(R.id.toolBar); setSupportActionBar(_toolbar); _layoutManager = new LinearLayoutManager(this); _adapter = new RecyclerAdapter(_nameFriends); _recyclerView = findViewById(R.id.rv_searchlist); _recyclerView.setLayoutManager(_layoutManager); _recyclerView.setHasFixedSize(true); _recyclerView.setAdapter(_adapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.toolbar_menu, menu); MenuItem searchItem = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) searchItem.getActionView(); searchView.setOnQueryTextListener(this); return true; } @Override public boolean onQueryTextSubmit(String query) { return false; } @Override public boolean onQueryTextChange(String newText) { if (newText.length() >= LENGTH_INPUT_MINIMAL) { InitFriends(); String txtInput = newText.toLowerCase(); List<String> friends = new ArrayList<>(); for (String name : _nameFriends) { if (name.toLowerCase().contains(txtInput)) { friends.add(name); } } Log.d("TAG", "text input for search: " + txtInput); if (friends.size() > 0) { _recyclerView.setVisibility(View.VISIBLE); }else{ _recyclerView.setVisibility(View.INVISIBLE); } //TODO query and update list result friends by txtInput's user _adapter.updateResultFriends(friends); } return false; } private void InitFriends() { _nameFriends = new ArrayList<>(); _nameFriends.add("Nguyen"); _nameFriends.add("Quan"); _nameFriends.add("Dung"); _nameFriends.add("Tai"); _nameFriends.add("Hai"); _nameFriends.add("Tuan"); _nameFriends.add("Hoang"); _nameFriends.add("Minh"); _nameFriends.add("Ngoc"); _nameFriends.add("Hoang Hải"); } } //toolbar <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/colorPrimary" android:id="@+id/toolBar" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/AlertDialog.AppCompat.Light" android:elevation="4dp"> </android.support.v7.widget.Toolbar> //item <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:gravity="center_vertical"> <TextView android:id="@+id/tv_result_search_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView" /> </FrameLayout> // adapter public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.SearchViewHolder>{ private List<String> _listname; public RecyclerAdapter(List<String> _listname) { this._listname = _listname; } @NonNull @Override public SearchViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) { View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item_search_friend, parent, false); return new SearchViewHolder(itemView); } @Override public void onBindViewHolder(@NonNull SearchViewHolder searchViewHolder, final int position) { searchViewHolder.getTextView().setText(_listname.get(position)); searchViewHolder.getTextView().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //TODO show profile of friend } }); } @Override public int getItemCount() { return _listname.size(); } public void updateResultFriends(List<String> names){ _listname = names; notifyDataSetChanged(); } public static class SearchViewHolder extends RecyclerView.ViewHolder{ public TextView getTextView() { return _name; } TextView _name; public SearchViewHolder(@NonNull View itemView) { super(itemView); _name = itemView.findViewById(R.id.tv_result_search_name); } } } //menu <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_search" android:icon="@android:drawable/ic_menu_search" app:showAsAction="ifRoom|collapseActionView" app:actionViewClass="android.support.v7.widget.SearchView" android:title="Search"/> </menu>

Các lần nộp bài đã được ghi nhân
(Xem dạng tệp tin văn bản)

Problems

Danh sách các bài đã làm đạt yêu cầu:

LEM3

Danh sách các bài làm chưa đạt yêu cầu:

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.