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>