Zarządzanie kontaktami

Zarządzanie kontaktami

Program: służący do odczytu kontaktów z telefonu jak i zapisu nowych. (numery komórkowe jak i do pracy)

Jak w opisie.

Kompilator: Eclipse

Film:

Kod programu:

Program główny – backend:

package com.example.lab6_zad1;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button bDodaj=(Button)findViewById(R.id.buttonDodaj);
        Button bOdczytaj=(Button)findViewById(R.id.buttonOdczytaj);
        
        bDodaj.setOnClickListener(new OnClickListener() {	
			@Override
			public void onClick(View v) {
				Intent i = new Intent(getApplicationContext(), DodajKontakt.class);
				startActivity(i);
				setContentView(R.layout.dodajk);
			}
		});
        
        bOdczytaj.setOnClickListener(new OnClickListener() {		
			@Override
			public void onClick(View v) {
				Intent i = new Intent(getApplicationContext(), OdczytajKontakt.class);
				startActivity(i);
				setContentView(R.layout.odczytajk);
			}
		});
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

Klasa dodawania:

package com.example.lab6_zad1;

import android.app.Activity;
import android.content.ContentValues;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

@SuppressWarnings("deprecation")
public class DodajKontakt extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.dodajk);
		
		Button bDodajKon=(Button)findViewById(R.id.buttonDodaj);
		final EditText eNazwa=(EditText)findViewById(R.id.editTextNazwa);
		final EditText eTelPraca=(EditText)findViewById(R.id.editTextTelPraca);
		final EditText eTelMobile=(EditText)findViewById(R.id.editTextTelMobile);	
		
		bDodajKon.setOnClickListener(new OnClickListener() {	
			@Override
			public void onClick(View v) {		
				ContentValues kontakt= new ContentValues();
				kontakt.put(Contacts.People.NAME,eNazwa.getText().toString());
				Uri uri=getContentResolver().insert(Contacts.People.CONTENT_URI, kontakt);
				Uri telUri=Uri.withAppendedPath(uri, Contacts.People.Phones.CONTENT_DIRECTORY);
				kontakt.clear();
				kontakt.put(Contacts.Phones.NUMBER,eTelMobile.getText().toString());
				kontakt.put(Contacts.People.TYPE, Contacts.Phones.TYPE_MOBILE);
				getContentResolver().insert(telUri, kontakt);
				kontakt.put(Contacts.Phones.NUMBER,eTelPraca.getText().toString());
				kontakt.put(Contacts.People.TYPE, Contacts.Phones.TYPE_WORK);
				getContentResolver().insert(telUri, kontakt);
				eNazwa.setText("");
				eTelPraca.setText("");
				eTelMobile.setText("");				
			}
		});
	}
}

Klasa odczytu:

package com.example.lab6_zad1;

import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;

@SuppressWarnings("deprecation")
public class OdczytajKontakt extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.odczytajk);
		
		final Spinner sKontakty=(Spinner)findViewById(R.id.spinnerUsers);
		final EditText eNazwa=(EditText)findViewById(R.id.editTextNazwa);
		final EditText eTelPraca=(EditText)findViewById(R.id.editTextTelPraca);
		final EditText eTelMobile=(EditText)findViewById(R.id.editTextTelMobile);
		final List<String> listaName = new ArrayList<String>();
		final List<String> listaTelPraca = new ArrayList<String>();
		final List<String> listaTelMobile = new ArrayList<String>();	
		String[] kolumny={Contacts.Phones.NAME, Contacts.Phones.NUMBER, Contacts.Phones.NUMBER};	
		Cursor kontakty=managedQuery(Contacts.Phones.CONTENT_URI, kolumny, null, null, null);
		kontakty.moveToFirst();
		int dlKursora=kontakty.getCount()/2+1;
		
        for(int i=1;i<dlKursora;i++)
        {		
        	listaName.add(kontakty.getString(0));
        	listaTelPraca.add(kontakty.getString(1));
        	kontakty.moveToNext();
        	listaTelMobile.add(kontakty.getString(1));
        	kontakty.move(1);
        }
	kontakty.close();

	ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,listaName);
        sKontakty.setAdapter(adapter);
        final AdapterView.OnItemSelectedListener wybranyName= new AdapterView.OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				String wybranyName2=listaName.get(sKontakty.getSelectedItemPosition()).toString();
				String wybranyTelPraca=listaTelPraca.get(sKontakty.getSelectedItemPosition()).toString();
				String wybranyTelMobile=listaTelMobile.get(sKontakty.getSelectedItemPosition()).toString();
				eNazwa.setText(wybranyName2);
				eTelPraca.setText(wybranyTelPraca);
				eTelMobile.setText(wybranyTelMobile);
			}
			@Override
			public void onNothingSelected(AdapterView<?> arg0) {}
		};
        sKontakty.setOnItemSelectedListener(wybranyName);	
	}
}

Layout klasy głównej:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/buttonDodaj"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/dodaj_kontakt" />

    <Button
        android:id="@+id/buttonOdczytaj"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/buttonDodaj"
        android:layout_below="@+id/buttonDodaj"
        android:layout_marginTop="16dp"
        android:text="@string/odczytaj_kontakt" />

</RelativeLayout>

Layout klasy dodawania:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/editTextNazwa"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/nazwa" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editTextTelPraca"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/telefon_praca" />

    <EditText
        android:id="@+id/editTextTelMobile"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/telefon_komorka" />

    <Button
        android:id="@+id/buttonDodaj"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/dodaj" />

</LinearLayout>

Layout klasy odczytu:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Spinner
        android:id="@+id/spinnerUsers"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/editTextNazwa"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/nazwa" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editTextTelMobile"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/telefon_komorka" />

    <EditText
        android:id="@+id/editTextTelPraca"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/telefon_praca" />

</LinearLayout>