Teams Winter 2011/team1/Android/Adding Functionality to Main Screen Elements

From CDOT Wiki
Revision as of 12:21, 28 March 2011 by Azea (talk | contribs)
Jump to: navigation, search

3. Adding Functionality to Main Screen Elements

3.1. Create class Student. It is holder for contacts:

3.2. Inside the <code>ContractList</code> class create a Vector of objects <code>Student</code>:
 <source lang="java">
     private Vector<Student> studentList;

3.3. Populate the Vector:

     public Vector<Student> getList(){
        studentList = new Vector<Student>();
       
        studentList.addElement(new Student("Anastasia", "Semionova", "asemionova1@learn.senecac.on.ca"));
        studentList.addElement(new Student("Minoo", "Ziaei", "minoo.ziaei@senecac.on.ca"));
        studentList.addElement(new Student("Ladan", "Zadeh", "lzahiroleslamzadeh@learn.senecac.on.ca"));
        studentList.addElement(new Student("Sergiu", "Ecob", "secob@learn.senecac.on.ca"));
        return studentList;
      }

3.4. Create the method that generates list on the screen:

    public void displayData(){        
       
        ListAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, studentList);
        contactsList = (ListView) findViewById(R.id.listView1);
        contactsList.setAdapter(adapter);
    }

3.5. Populate the listView on the main screen:

   ListAdapter adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, studentList);
        ListView contactsList = (ListView) findViewById(R.id.listView1);
        contactsList.setAdapter(adapter);

3.6. Add list to the main screen on create:

  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        studentList = getList();       
        displayData();
       
    }

3.7. Run the application:
A main5.png
3.8. Add the functionality to "Search" button by implementing the onClickListener():

  searchButton.setOnClickListener(new OnClickListener(){           
            public void onClick(View v) {
                EditText contact = (EditText)findViewById(R.id.editText1);
               
                String search = contact.getText().toString();
                if(search.length() == 0){
                    displayData(studentList);
                } else {
                    search = ".*" + search + ".*";
                    Vector<Student> studentListCopy= (Vector<Student>)studentList.clone();
                for(int i = 0; i < studentListCopy.size();i++){
                   
                if (!studentListCopy.elementAt(i).getFirstname().toLowerCase().matches(search.toLowerCase()))
                        if(!studentListCopy.elementAt(i).getLastName().toLowerCase().matches(search.toLowerCase())) {
                    studentListCopy.remove(i);
                }
                }
                displayData(studentListCopy);
                }
            }
        });

3.9. Run the application, type in search text in the Text Field and click search button:
A search.png