Get an element
To get an specific element by id use the method findViewById
findViewById(R.id.name)
After you do a cast to the corresponding type
private EditText mName = (EditText) findViewById(R.id.name);
Link events with code
In the file activity_main.xml inside the object (for example: ImageButton, Button) use the attribute
android:onClick="method_name"
After in the your Activity class (for example MainActivity.java) declare your method as you named previously (in this case
method_name()), passing as parameter the
View.
public void
method_name(
View v) {
//Your code
}
Send message in the view (Toast)
Inside your method create a Toast object and use first the method
makeText() and then
show() method
.
Toast.
makeText(this.getApplicationContext(), R.string.app_name, Toast.LENGTH_LONG).
show();
Animation
Inside the activity method (Ex.
public void processForm(View view) {} ), create the
Animation object. In this case the method belong to a button.
Animation anim = AnimationUtils.makeOutAnimation(this, true);
view.startAnimation(
anim);
----------------------- Intent ---------------------------------
Call another View
To call another View use the following code, where
SettingsActivity is your class' name.
Intent i = new Intent(this,SettingsActivity.class);
startActivity(i);
Send a plain text message
Inside the activity method (Ex.
public void processForm(View view) {} ), create
Intent object.
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT, "This is my message");
startActivity(i);
Send sms
Inside the activity method (Ex.
public void processForm(View view) {} ), create
Intent object.
mPhone = (EditText) findViewById(R.id.phone);
// this is a textbox
Intent intent = new
Intent(Intent.ACTION_VIEW);
intent.setData(Uri.fromParts("sms",
mPhone));
intent.putExtra("sms_body", comments);
Send mail and review configured email client
Inside the activity method (Ex.
public void processForm(View view) {} ), create
Intent object.
Intent intent = new
Intent(Intent.SEND_TO);
intent.setData( Uri.fromParts("
mailto", "
destiny_mail", null));
intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
intent.putExtra(Intent.EXTRA_TEXT, "message");
Validate email client
if(
intent.resolveActivity(getPackageManager()) == null ){}
When the method
resolveActivity return null there is not application to execute the
Intent
Send an image file
Inside the activity method (Ex.
public void processForm(View view) {} ), create
Intent object.
In this case you have to define the type of file and extension
share.setType("image/jpeg").
Also you have to declare the URL where is the file with
share.putExtra(Intent.EXTRA_STREAM, uri);
Finally you need to execute the activity like the others with
startActivity and if you want configure the chooser application with your own message.
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");
share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share using..."));
Get Resource / startActivityForResult()
This intent open the gallery. The method
startActivityForResult return the result of the new created activity.
Intent intent = new
Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent,"Select..."), REQUEST_CODE);
After the intent finished the task execute the method
onActivityResult, to use it you have to override the method in your code
, one of the parameters the method received is resultCode, the parameter received as possible values: RESULT_CANCELED or RESULT_OK
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
}
}
Scan new images
This intent do a refresh action to view the new images in our cellphone. The difference for this case is that instead of use startActivity to execute the intent, now you have to use
sendBroadcast method.
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intent.setData(uri);
sendBroadcast(intent);