0

i am programming for android an app and i want to call a random phone number from this app... so i got this, that you can enter a contact and his number is going to be saved in sharedPreferences.. dont know for what but it looks cool :D.. now i am trying to call the latest contact which the user added, but i dont know how to do that... i already copied much code of other questions in my programm without success...

hope you can help me adding a call function

ummm... ya i copied nearly the whole code.. so dont ask me pls what for some statements are... (i wont have anything against an explenation)

    package com.example.getcontacts;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.ContactsContract;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

    protected static final String EXTRA_MESSAGE = "com.example.getcontacts";
    private TextView tv;
    private int i = loadI();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tv = (TextView) findViewById(R.id.tv);


        load(tv, i);
     // this opens the activity. note the  Intent.ACTION_GET_CONTENT
        // and the intent.setType
        ((Button)findViewById(R.id.pick_person)).setOnClickListener( new OnClickListener() {
            @Override
            public void onClick(View v) {
                // user BoD suggests using Intent.ACTION_PICK instead of .ACTION_GET_CONTENT to avoid the chooser
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                // BoD con't: CONTENT_TYPE instead of CONTENT_ITEM_TYPE
                intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
                startActivityForResult(intent, 1);                
            }
        });

        //get all saved phone numbers
        ((Button)findViewById(R.id.allNr)).setOnClickListener( new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent inte = new Intent(null, Contacts.class);
                inte.putExtra(EXTRA_MESSAGE, i);
                startActivity(inte);
            }
        });

    }

    //doing random sh*t which i dont know whaat happens
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data != null) {
            //get some datas... ?
            Uri uri = data.getData();

            if (uri != null) {
                //get more data
                Cursor c = null;
                try {
                    //initializing something
                    c = getContentResolver().query(uri, new String[]{ 
                                ContactsContract.CommonDataKinds.Phone.NUMBER,  
                                ContactsContract.CommonDataKinds.Phone.TYPE },
                            null, null, null);

                    if (c != null && c.moveToFirst()) {
                        //initializing phone number
                        String number = c.getString(0);
                        //get the type... somehow
                        int type = c.getInt(1);

                        //save in shared preferences and show the latest nr
                        int i = save(number);
                        showSelectedNumber(type, number);
                        load(tv, i);
                    }
                } finally {
                    if (c != null) {
                        c.close();
                    }
                }
            }
        }
    }

    public void showSelectedNumber(int type, String number) {
        Toast.makeText(this, "Saved Nr : " + number, Toast.LENGTH_LONG).show();      
    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    public String load(TextView tv, int i) {
        String sharedNumber;
        SharedPreferences sp = PreferenceManager
                .getDefaultSharedPreferences(this);

        String c = Integer.toString(i);
        sharedNumber = sp.getString(c, "");
        tv.setText("Number: " + sharedNumber);
        return sharedNumber;
    }

    public int save(String value) {
        SharedPreferences sp = PreferenceManager
                .getDefaultSharedPreferences(this);
        Editor edit = sp.edit();
        int i = 0;
        String c;
        c = Integer.toString(i);
        edit.putString(c, value);
        edit.commit();
        i  =Integer.parseInt(c);
        i++;
        saveI("savedI", i);
        return i;
    }

    public void saveI(String key, int value) {
        SharedPreferences sp = PreferenceManager
                .getDefaultSharedPreferences(this);
        Editor edit = sp.edit();
        edit.putInt(key, value);
        edit.commit();
        }

    public int loadI() {
        int sharedNumber;
        SharedPreferences sp = PreferenceManager
                .getDefaultSharedPreferences(this);
        sharedNumber = sp.getInt("savedI", 0);
        return sharedNumber;
    }


}
vZ_LiTe
  • 19
  • 4

0 Answers0