Advertisement
Guest User

Untitled

a guest
May 28th, 2015
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.71 KB | None | 0 0
  1. package pl.wroc.pwr.indoorlocalizationtieto.UI;
  2.  
  3. import android.content.Context;
  4. import android.os.Bundle;
  5. import android.support.v4.app.Fragment;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.widget.AdapterView;
  10. import android.widget.ArrayAdapter;
  11. import android.widget.Button;
  12. import android.widget.EditText;
  13. import android.widget.ListView;
  14. import android.widget.Toast;
  15.  
  16. import java.util.ArrayList;
  17. import java.util.HashMap;
  18. import java.util.List;
  19.  
  20. import pl.wroc.pwr.indoorlocalizationtieto.Geometry.Polygon;
  21. import pl.wroc.pwr.indoorlocalizationtieto.R;
  22. import pl.wroc.pwr.indoorlocalizationtieto.map.MapObject;
  23. import pl.wroc.pwr.indoorlocalizationtieto.map.Room;
  24.  
  25. public class SearchFragment extends Fragment implements View.OnClickListener {
  26.     //TODO: obsluga wyszukiwarki
  27.     private ListView listView;
  28.     private EditText editText;
  29.     private Button searchBut;
  30.     private MapObject selectedObject;
  31.     private ArrayList<MapObject> objectsList;
  32.     private String searchedPhrase;
  33.  
  34.     @Override
  35.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
  36.         View rootView = inflater.inflate(R.layout.search_layout, container, false);
  37.         listView = (ListView) rootView.findViewById(R.id.listView);
  38.         editText = (EditText) rootView.findViewById(R.id.eTSearch);
  39.         searchBut = (Button) rootView.findViewById(R.id.butSearch);
  40.         searchBut.setOnClickListener(this);
  41.  
  42.         listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  43.  
  44.             @Override
  45.             public void onItemClick(AdapterView<?> parent, final View view,
  46.                                     int position, long id) {
  47.                 final String item = (String) parent.getItemAtPosition(position);
  48.                 //TODO: przypisanie wybranego elementu jako dany MapObject dalej
  49.                 selectedObject= getSelectedObject(item.replace(searchedPhrase + " ", ""));
  50.                 Toast.makeText(getActivity(), selectedObject.getName(), Toast.LENGTH_SHORT).show();
  51.             }
  52.  
  53.         });
  54.  
  55.         return rootView;
  56.     }
  57.  
  58.     private ArrayList<String> getList (){
  59.         //TODO: wywolanie wyszukiwania Piotrka i stworzenie na podstawie danych listy Stringow
  60.         Room room = new Room(1,new Polygon(),true );
  61.         Room room2 = new Room(2,new Polygon(),true );
  62.         Room room3 = new Room(3,new Polygon(),true );
  63.         room.setName("221");
  64.         room2.setName("222");
  65.         room3.setName("223");
  66.         objectsList = new ArrayList<>();
  67.         objectsList.add(room);
  68.         objectsList.add(room2);
  69.         objectsList.add(room3);
  70.         ArrayList<String> list = new ArrayList<String>();
  71.         for (MapObject object : objectsList) {
  72.             list.add(searchedPhrase + " " + object.getName());
  73.         }
  74.         //teraz sobie wrzucam cokolwiek...
  75.         /*String[] results = {"pokój 221", "pokój 222", "pokój 223", "pokój 224", "pokój 225"};
  76.         for (String result: results) {
  77.             list.add(result);
  78.         }*/
  79.         return list;
  80.     }
  81.  
  82.     private void displayList () {
  83.         final ArrayList<String> list = new ArrayList<>(getList());
  84.         final StableArrayAdapter adapter = new StableArrayAdapter(getActivity(),
  85.                 android.R.layout.simple_list_item_1, list);
  86.         listView.setAdapter(adapter);
  87.     }
  88.  
  89.     private MapObject getSelectedObject (String selected) {
  90.         for (MapObject object : objectsList) {
  91.             if (object.getName().equals(selected)) {
  92.                 return object;
  93.             }
  94.         }
  95.         return null;
  96.     }
  97.  
  98.     @Override
  99.     public void onClick(View v) {
  100.         int id = v.getId();
  101.         if (id == R.id.butSearch) {
  102.             searchedPhrase = editText.getText().toString();
  103.             //objectsList = new ArrayList<>();
  104.             //objectsList = searchEngine.findElementsWithinQuery(text);
  105.             displayList();
  106.         }
  107.     }
  108.  
  109.     private class StableArrayAdapter extends ArrayAdapter<String> {
  110.         HashMap<String, Integer> mIdMap = new HashMap<String, Integer>();
  111.  
  112.         public StableArrayAdapter(Context context, int textViewResourceId,
  113.                                   List<String> objects) {
  114.             super(context, textViewResourceId, objects);
  115.             for (int i = 0; i < objects.size(); ++i) {
  116.                 mIdMap.put(objects.get(i), i);
  117.             }
  118.         }
  119.  
  120.         @Override
  121.         public long getItemId(int position) {
  122.             String item = getItem(position);
  123.             return mIdMap.get(item);
  124.         }
  125.  
  126.         @Override
  127.         public boolean hasStableIds() {
  128.             return true;
  129.         }
  130.     }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement