A ActionBar é uma característica da janela para identificar a aplicação e fornecer ações ao usuários e modos de navegação. Você deve usar a ActionBar na maioria das atividades que precisam apresentar ações do usuário ou uma navegação global, pois fornece uma interface consistente entre os aplicativos e o sistema.
Abaixo vamos mostrar como inserir algumas informações na actionBar e icones de ações, assim como mostrado na imagem acima.
- Adicionar titulo e subtitulo:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar actionBar = getActionBar(); actionBar.setSubtitle("http://zarelli.wordpress.com"); actionBar.setTitle("Exemplo - ActionBar"); }
- Para adicionar os icones devemos criar um xml de menu. Devemos criar uma pasta chamada menu/ dentro da pasta res/, nela, vamos adicionar o seguinte xml (menu_actionbar.xml):
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_anterior" android:orderInCategory="100" android:showAsAction="always" android:icon="@android:drawable/ic_media_rew" android:title="Anterior"/> <item android:id="@+id/action_proximo" android:orderInCategory="100" android:showAsAction="always" android:icon="@android:drawable/ic_media_ff" android:title="Proxímo"/> </menu>
- Agora para adicionar o menu criado acima em nossa actionBar, devemos sobreescrever os seguintes métodos em nossa MainActivity:
/** * Responsável em adicionar o menu a ActionBar * * @param menu * @return */ @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_actionbar, menu); return true; } /** * Responsável por definir as ações do menu * * @param item * @return */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_proximo: Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT) .show(); break; case R.id.action_anterior: Toast.makeText(this, "Menu item 2 selected", Toast.LENGTH_SHORT) .show(); break; } return true; }
Nossa ActionBar está pronta para ser utilizada, lembre-se de utilizar a API do android superior ou igual a 11 e utilizar um theme, no caso deste exemplo estou utilizando o android:theme=”@android:style/Theme.Holo.Light”
Link do projeto: (AQUI)
Mais sobre o assunto e Fonte: http://goo.gl/l5mQA
Legal. Mas para mudar a fonte e a cor dela no action bar, como seria ?
https://developer.android.com/training/basics/actionbar/styling.html
Muito obrigado. Você saberia me dizer como faço para passar um valor double por intent. O meu não esta dando. SE Puder me ajudar.
public class MyActivity extends ActionBarActivity {
EditText editprecogas;
EditText editprecoalc;
EditText editmediagas;
EditText editmediaalc;
EditText editkmgas;
EditText editkmalc;
Button calcular;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
android.app.ActionBar actionBar = getActionBar();
actionBar.setSubtitle(“De olho no Combustível”);
actionBar.setTitle(“Axxon Software”);
editprecogas = (EditText) findViewById(R.id.editText);
editprecoalc = (EditText) findViewById(R.id.editText1);
editmediagas = (EditText) findViewById(R.id.editText2);
editmediaalc = (EditText) findViewById(R.id.editText3);
editkmgas = (EditText) findViewById(R.id.editText4);
editkmalc = (EditText) findViewById(R.id.editText5);
calcular = (Button) findViewById(R.id.clickBtnDash);
calcular.setOnClickListener(new Button.OnClickListener () {
public void onClick (View view){
//Convertendo as Strings para double
double numeroUmValor = Double.parseDouble(editprecogas.getText().toString()); // Preço Gasolina
double numeroDoisValor = Double.parseDouble(editprecoalc.getText().toString()); // Preço Alcool
double numeroTresValor = Double.parseDouble(editmediagas.getText().toString()); // Media Gasolina
double numeroQuatroValor = Double.parseDouble(editmediaalc.getText().toString()); // Media Alcool
double numeroCincoValor = Double.parseDouble(editkmgas.getText().toString()); // Litro Gasolina
double numeroSeisValor = Double.parseDouble(editkmalc.getText().toString()); // Litro Alcool
//Fazer as contas
final double totalcompragas = numeroUmValor * numeroCincoValor;
final double totalkmgas = numeroTresValor * numeroCincoValor;
Intent it = new Intent(MyActivity.this, Tela1.class);
Bundle params = new Bundle();
params.putDouble(“preço”,totalcompragas);
params.putDouble(“km”,totalkmgas);
it.putExtras(params);
startActivity(it);
}
});
}
public class Tela1 extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.resultactivity);
android.app.ActionBar actionBar = getActionBar();
actionBar.setSubtitle(“De olho no Combustível”);
actionBar.setTitle(“Axxon Software”);
Intent it = getIntent();
Bundle params = it.getExtras();
Double aDouble = params.getDouble(“”);
EditText editText1 = (EditText) findViewById(R.id.editText1);
editText1.setText(aDouble+””);
}
}
Na segunda tela voce está pegando o valor errado, pois você não passa a tag voce faz assim: params.getDouble(“”); o correto seria passar a tag do valor que voce quer assim: params.getDouble(“preco”);
Ao dar o setText evite concatencar com vazio faça assim: editText1.setText(String.valueOf(aDouble));
Também fiz um exemplo que eu mesmo testei:
============================================================
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Double d1 = new Double(123132);
Bundle bundle = new Bundle();
bundle.putDouble(“d1”, d1);
Intent it = new Intent(this, Activity2.class);
it.putExtras(bundle);
startActivity(it);
}
}
============================================================
public class Activity2 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity2);
Bundle bundle = getIntent().getExtras();
double d1 = bundle.getDouble(“d1”);
System.out.println(“-> “+d1);
}
============================================================
Você é o cara. Muito deram muitas formas, m o seu funcionou perfeito. Agora, tambem daria de passara informação para a outra classe dando um Get and Set e chamando e set a textView na outra classe ?
Acredito que sim sem problemas, se você está na mesma instancia da Activity voce pode ter métodos setText(String texto){//metodo} e passar o texto e dentro do método dar um setText.
Acredito que sim sem problemas, se você está na mesma instancia da Activity voce pode ter métodos setText(String texto){//metodo} e passar o texto e dentro do método dar um setText.