SlideShare a Scribd company logo
1 of 81
Download to read offline
com Daniel Baccin
Quick tips for Android
Aplicando diferentes layouts de
acordo com a orientação do
dispositivo
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
public class MainActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nomes = new ArrayList<String>();
editText = (EditText) findViewById(R.id.editText1);
listView = (ListView) findViewById(R.id.listView);
adapter =
new ArrayAdapter<String>(
this,android.R.layout.simple_list_item_1, nomes);
listView.setAdapter(adapter);
}
}
public class MainActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nomes = new ArrayList<String>();
editText = (EditText) findViewById(R.id.editText1);
listView = (ListView) findViewById(R.id.listView);
adapter =
new ArrayAdapter<String>(
this,android.R.layout.simple_list_item_1, nomes);
listView.setAdapter(adapter);
}
}
public class MainActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nomes = new ArrayList<String>();
editText = (EditText) findViewById(R.id.editText1);
listView = (ListView) findViewById(R.id.listView);
adapter =
new ArrayAdapter<String>(
this,android.R.layout.simple_list_item_1, nomes);
listView.setAdapter(adapter);
}
}
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
public class MainActivity extends AppCompatActivity {
…
public void meuBotaoClick(View v){
nomes.add(editText.getText().toString());
editText.setText("");
adapter.notifyDataSetChanged();
}
}
Clique com Botão direito na pasta res:
New > Android resorce directory
Agora copie e cole o arquivo de layout
para a nova pasta, ficando assim:
➔ res/layout/activity_main.xml
➔ res/layout-land/activity_main.xml
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"/>
</LinearLayout>
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"/>
</LinearLayout>
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="horizontal">
<LinearLayout
android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="2"/>
</LinearLayout>
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="horizontal">
<LinearLayout
android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="2"/>
</LinearLayout>
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="2"/>
</LinearLayout>
<LinearLayout
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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:text="@string/digite"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="meuBotaoClick"
android:text="@string/adicionar"/>
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="2"/>
</LinearLayout>
public class MainActivity extends AppCompatActivity {
…
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putStringArrayList(Contantes.NOMES, nomes);
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
nomes = new ArrayList<String>();
...
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
if(savedInstanceState != null){
nomes =
savedInstanceState.getStringArrayList(Contantes.NOMES);
}else{
nomes = new ArrayList<String>();
}
...
}
Passando objetos entre Intents
Parcelable x Serializable
Parcelable x Serializable
public class Cliente implements Parcelable {
private String telefone;
private String nome;
public Cliente( String nome, String telefone){
this.nome = nome;
this.telefone = telefone;
}
public class Cliente implements Parcelable {
private String telefone;
private String nome;
public Cliente( String nome, String telefone){
this.nome = nome;
this.telefone = telefone;
}
public class Cliente implements Parcelable {
private String telefone;
private String nome;
public Cliente( String nome, String telefone){
this.nome = nome;
this.telefone = telefone;
}
public class Cliente implements Parcelable {
private String telefone;
private String nome;
public Cliente( String nome, String telefone){
this.nome = nome;
this.telefone = telefone;
}
public class Cliente implements Parcelable {
...
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(nome);
dest.writeString(telefone);
}
public class Cliente implements Parcelable {
...
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(nome);
dest.writeString(telefone);
}
public class Cliente implements Parcelable {
...
public static final Creator<Cliente> CREATOR = new Creator<Cliente>() {
@Override
public Cliente createFromParcel(Parcel in) {
return new Cliente(in);
}
@Override
public Cliente[] newArray(int size) {
return new Cliente[size];
}
};
}
public class MainActivity extends AppCompatActivity
implements iew.OnClickListener{
private TextView editTextNome;
private TextView editTextFone;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextNome = (TextView) findViewById(R.id.editTextNome);
editTextFone = (TextView) findViewById(R.id.editTextFone);
Button btEnviar = (Button) findViewById(R.id.btEnviar);
btEnviar.setOnClickListener(this);
}
public class MainActivity extends AppCompatActivity
implements iew.OnClickListener{
private TextView editTextNome;
private TextView editTextFone;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextNome = (TextView) findViewById(R.id.editTextNome);
editTextFone = (TextView) findViewById(R.id.editTextFone);
Button btEnviar = (Button) findViewById(R.id.btEnviar);
btEnviar.setOnClickListener(this);
}
public class MainActivity extends AppCompatActivity
implements iew.OnClickListener{
private TextView editTextNome;
private TextView editTextFone;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextNome = (TextView) findViewById(R.id.editTextNome);
editTextFone = (TextView) findViewById(R.id.editTextFone);
Button btEnviar = (Button) findViewById(R.id.btEnviar);
btEnviar.setOnClickListener(this);
}
public class MainActivity extends AppCompatActivity
implements iew.OnClickListener{
private TextView editTextNome;
private TextView editTextFone;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextNome = (TextView) findViewById(R.id.editTextNome);
editTextFone = (TextView) findViewById(R.id.editTextFone);
Button btEnviar = (Button) findViewById(R.id.btEnviar);
btEnviar.setOnClickListener(this);
}
public class MainActivity extends AppCompatActivity
implements iew.OnClickListener{
private TextView editTextNome;
private TextView editTextFone;
...
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btEnviar:
Cliente cliente = new Cliente(
editTextNome.getText().toString(),
editTextFone.getText().toString());
Intent irParaTela2 = new Intent(this, Tela2Activity.class);
irParaTela2.putExtra(Contantes.CLIENTE, cliente);
startActivity(irParaTela2);
break;
}
}
}
public class MainActivity extends AppCompatActivity
implements iew.OnClickListener{
private TextView editTextNome;
private TextView editTextFone;
...
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btEnviar:
Cliente cliente = new Cliente(
editTextNome.getText().toString(),
editTextFone.getText().toString());
Intent irParaTela2 = new Intent(this, Tela2Activity.class);
irParaTela2.putExtra(Contantes.CLIENTE, cliente);
startActivity(irParaTela2);
break;
}
}
}
public class MainActivity extends AppCompatActivity
implements iew.OnClickListener{
private TextView editTextNome;
private TextView editTextFone;
...
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btEnviar:
Cliente cliente = new Cliente(
editTextNome.getText().toString(),
editTextFone.getText().toString());
Intent irParaTela2 = new Intent(this, Tela2Activity.class);
irParaTela2.putExtra(Contantes.CLIENTE, cliente);
startActivity(irParaTela2);
break;
}
}
}
public class MainActivity extends AppCompatActivity
implements iew.OnClickListener{
private TextView editTextNome;
private TextView editTextFone;
...
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btEnviar:
Cliente cliente = new Cliente(
editTextNome.getText().toString(),
editTextFone.getText().toString());
Intent irParaTela2 = new Intent(this, Tela2Activity.class);
irParaTela2.putExtra(Contantes.CLIENTE, cliente);
startActivity(irParaTela2);
break;
}
}
}
public class Tela2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tela2);
TextView txtText = (TextView) findViewById(R.id.txtTexto);
Intent intent = getIntent();
Cliente cliente = intent.getParcelableExtra(Contantes.CLIENTE);
if(cliente != null){
String texto =
String.format("Nome: %s / Telefone: %s",
cliente.getNome(),
cliente.getTelefone());
txtText.setText(texto);
public class Tela2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tela2);
TextView txtText = (TextView) findViewById(R.id.txtTexto);
Intent intent = getIntent();
Cliente cliente = intent.getParcelableExtra(Contantes.CLIENTE);
if(cliente != null){
String texto =
String.format("Nome: %s / Telefone: %s",
cliente.getNome(),
cliente.getTelefone());
txtText.setText(texto);
public class Tela2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tela2);
TextView txtText = (TextView) findViewById(R.id.txtTexto);
Intent intent = getIntent();
Cliente cliente = intent.getParcelableExtra(Contantes.CLIENTE);
if(cliente != null){
String texto =
String.format("Nome: %s / Telefone: %s",
cliente.getNome(),
cliente.getTelefone());
txtText.setText(texto);
Verificação de permisões no Android
Marshmallow
public class MainActivity extends ListActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listaDeContatos = obtemListaDeContatos();
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this, android.R.layout.
simple_list_item_1, listaDeContatos);
setListAdapter(adapter);
}
}
public class MainActivity extends ListActivity{
...
@Override
public void onRequestPermissionsResult(int requestCode,
String[] permissions,
int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
discar();
}
}
}
public class MainActivity extends ListActivity{
...
@Override
public void onRequestPermissionsResult(int requestCode,
String[] permissions,
int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
discar();
}
}
}
public class MainActivity extends ListActivity{
...
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
switch (position){
case 1:
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new
String[]{Manifest.permission.CALL_PHONE}, 0);
} else {
discar();
}
}
}
}
public class MainActivity extends ListActivity{
...
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
switch (position){
case 1:
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new
String[]{Manifest.permission.CALL_PHONE}, 0);
} else {
discar();
}
}
}
}
public class MainActivity extends ListActivity{
...
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
switch (position){
case 1:
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new
String[]{Manifest.permission.CALL_PHONE}, 0);
} else {
discar();
}
}
}
}
public class MainActivity extends ListActivity{
...
private void discar() {
Uri uri = Uri.parse("tel:" + "88121128");
Intent intent = new Intent(Intent.ACTION_CALL, uri);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
}
Otimizando seu Android Studio
http://tools.android.com/tech-docs/configuration
studio.vmoptions
studio.vmoptions
idea.properties
daniel.baccin@gmail.com
https://github.com/danielbaccin

More Related Content

What's hot (7)

Part 4
Part 4Part 4
Part 4
 
Uts mb
Uts mbUts mb
Uts mb
 
Actividad 9
Actividad 9Actividad 9
Actividad 9
 
Lab 10 gride view
Lab 10 gride viewLab 10 gride view
Lab 10 gride view
 
Actividad 01
Actividad 01Actividad 01
Actividad 01
 
Actividad 01
Actividad 01Actividad 01
Actividad 01
 
Pract 7
Pract 7Pract 7
Pract 7
 

Viewers also liked (11)

TVanchorWedding
TVanchorWeddingTVanchorWedding
TVanchorWedding
 
Métodos de grado
Métodos de gradoMétodos de grado
Métodos de grado
 
•Livro "Tribunal de Justiça do Estado do Ceará: 140 anos
•Livro "Tribunal de Justiça do Estado do Ceará: 140 anos•Livro "Tribunal de Justiça do Estado do Ceará: 140 anos
•Livro "Tribunal de Justiça do Estado do Ceará: 140 anos
 
EmeraldCity2
EmeraldCity2EmeraldCity2
EmeraldCity2
 
Pedro's_Resume_1214
Pedro's_Resume_1214Pedro's_Resume_1214
Pedro's_Resume_1214
 
Bioterio
BioterioBioterio
Bioterio
 
Perl5 on Perl6
Perl5 on Perl6Perl5 on Perl6
Perl5 on Perl6
 
A simple and powerful property system for C++ (talk at GCDC 2008, Leipzig)
A simple and powerful property system for C++ (talk at GCDC 2008, Leipzig)   A simple and powerful property system for C++ (talk at GCDC 2008, Leipzig)
A simple and powerful property system for C++ (talk at GCDC 2008, Leipzig)
 
RichardHughesPort for Linked In_July2015_2
RichardHughesPort for Linked In_July2015_2RichardHughesPort for Linked In_July2015_2
RichardHughesPort for Linked In_July2015_2
 
02 филатов ibm
02 филатов ibm02 филатов ibm
02 филатов ibm
 
Smm
SmmSmm
Smm
 

Quick tips for android