-1

After some research and coding, I am able to get into my callLog. after i added more codes so that I am able to retrieve the numbers from callLog to my edittext, there seem to be errors. I have googled on this but so far to no avail. Any advise? -Simon-

import java.sql.Date;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.CallLog;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class SimonCallLogActivity extends Activity {
/** Called when the activity is first created. */
EditText display;
Button log;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    //to go to Call Log//        
    log=(Button)findViewById(R.id.button1);        
    log.setOnClickListener(new Button.OnClickListener(){

        public void onClick(View v) {               
            Intent myIntent=new Intent();
            myIntent.setAction(Intent.ACTION_CALL_BUTTON);
            startActivity(myIntent);
            }
        });
}
//Call Log//
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    final EditText number = (EditText) findViewById(R.id.editText1);
    Cursor cursor = null;
    String phoneNo = " ";
    List<String> logNumbers = new ArrayList<String>();

        String[] projection = new String[] {CallLog.Calls.NUMBER,     CallLog.Calls.DATE, CallLog.Calls.CACHED_NAME};
        Uri contacts =  CallLog.Calls.CONTENT_URI;

        Cursor managedCursor = managedQuery(contacts, projection, null, null,     CallLog.Calls.DATE + " ASC");
        getColumnData(managedCursor);
    }
private void getColumnData(Cursor cur){
    try{
       if (cur.moveToFirst()) {
         String name;
         String number;
         long date;
         int nameColumn = cur.getColumnIndex(CallLog.Calls.CACHED_NAME);
         int numberColumn = cur.getColumnIndex(CallLog.Calls.NUMBER);
         int dateColumn = cur.getColumnIndex(CallLog.Calls.DATE);

         System.out.println("Reading Call Details: ");
         do {
             name = cur.getString(nameColumn);
             number = cur.getString(numberColumn);
             date = cur.getLong(dateColumn);
             System.out.println(number + ":"+ new Date(date) +":"+name);
            // number.setText(numberColumn);

         } while (cur.moveToNext());
       }
   }    
   finally
   {
     cur.close();
   }

    final String [] items = logNumbers.toArray(new String[logNumbers.size()     ])  ;
    AlertDialog.Builder builder = new     AlertDialog.Builder(SimonCallLogActivity.this);
    builder.setTitle("Choose a number: ");
    builder.setItems(items, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int item) {
// TODO Auto-generated method stub
String selectedNumber = items[item].toString();
selectedNumber= selectedNumber.replace("-","");
selectedNumber= selectedNumber.replace("Home:", "");
selectedNumber= selectedNumber.replace("Mobile:", "");
selectedNumber= selectedNumber.replace("Work:", "");
selectedNumber= selectedNumber.replace("Other:",  "");
//selectedNumber = selectedNumber.replace("+","");                                                  

    number.setText(selectedNumber);                                                 
}
});
    AlertDialog alert = builder.create();
    if(logNumbers.size()>1){
    alert.show();

    }else{
    String selectedNumber= phoneNo.toString();
    selectedNumber=selectedNumber.replace("-", "");

        number.setText(selectedNumber);                                                 
    }
    if(phoneNo.length()==0){
    Log.d("SIMON", "No     contact");                                               
        }                                               
    }
    break;              
    }
}else
{
//gracefully handle failure
Log.w("SIMON","Warning activity not okay");
}
}
}
Cœur
  • 37,241
  • 25
  • 195
  • 267

1 Answers1

0

Declare logNumbers and number as members of your SimonCallLogActivity class.

public class SimonCallLogActivity extends Activity {

    /** Member variables */
    EditText display;
    Button log;

    List<String> logNumbers = new ArrayList<String>();
    EditText number;
    ...
    ...

}

Remove their local declarations..

Ron
  • 24,175
  • 8
  • 56
  • 97
  • hi what do u mean by declaring as members? i dont understand. – Simon Diamond Jul 22 '12 at 12:49
  • how long you been programming in java? do just like `EditText display; Button log;` – Ron Jul 22 '12 at 13:01
  • about a month and i'm still learning.. i already declared lognumbers as List logNumbers = new ArrayList(); – Simon Diamond Jul 22 '12 at 13:09
  • I recommend you start learning android programming by doing a simpler project.. This is project is too complex for you as you are not even capable of fixing simple syntax errors. Do a hello world app first. Dont copy from somewhere. type with your own bare hands. You 'll learn to fix syntax errors.. – Ron Jul 24 '12 at 13:56