English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Código de implementação específico:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // método1. usando classe que implementa a interface OnClickListener ((Button) findViewById(R.id.btn1) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity1); startActivity(intent); } }); // método2. usando classe anônima interna ((Button) findViewById(R.id.btn2) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity2); startActivity(intent); } }); // método3. Activity implementando a interface OnClickListener ((Button) findViewById(R.id.btn3) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity3); MainActivity.this.startActivity(intent); } }); // método4. diretamente marcar o evento de trigger ((Button) findViewById(R.id.btn4) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity4); MainActivity.this.startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflar o menu; isso adiciona itens à barra de ação se ela estiver presente. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Trate cliques em itens da barra de ação aqui. A barra de ação // tratar automaticamente cliques no Home/Botão Up, assim que // como você especifica uma activity mãe no AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }
No código acima:
1Classe MainActivity que criamos precisa herdar de Activity
2、é necessário sobrescrever o método onCreate e carregar o arquivo de layout correspondente através do método setContentView
3、pode-se encontrar o controle correspondente (definido no arquivo de layout) e ligar um evento de clique (no Java através de ouvintes, no C# através de delegados)
4、pode-se passar dados e passar para outras Activitys através do objeto Intent
5、onCreateOptionsMenu e onOptionsItemSelected são os métodos para adicionar e selecionar itens de menu.
A seguir estão os conteúdos de quatro activitys diferentes:
Primeiro tipo:
public class ButtonActivity1 extends Activity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button1); button = (Button) findViewById(R.id.btn1); button.setOnClickListener(new MyListener()); } public class MyListener implements OnClickListener { @Override public void onClick(View v) { Toast.makeText(ButtonActivity1.this, "Esta é a primeira forma de escrever o evento, definição de classe interna", 2000).show(); } } }
Segundo tipo:
public class ButtonActivity2 extends Activity { Button button ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button2); button = (Button)findViewById(R.id.btn1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ButtonActivity2.this, "Esta é a segunda forma de escrever o evento, forma de classe interna anônima", 2000).show(); } }); } }
Terceiro tipo:
public class ButtonActivity3 extends Activity implements OnClickListener { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button3); button= (Button)findViewById(R.id.btn1); button.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn1: Toast.makeText(ButtonActivity3.this, "Esta é a terceira forma de escrever o evento, implementando diretamente o método OnClick da interface OnClickListener", 2000).show(); break; default: Toast.makeText(ButtonActivity3.this, "Não foi acionado", 2000).show(); break; } } }
Quarto tipo:
É necessário especificar o método btnClickEvent no arquivo de layout 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:orientation="vertical" tools:context="com.example.test.Button"4Activity" > <Button android:id="@"+id/btn4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Clique em mim" android:onClick="btnClickEvent"/> </LinearLayout> public class ButtonActivity4 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button4); } public void btnClickEvent(View v){ Toast.makeText(ButtonActivity4.this, "Esta é a quarta forma de evento, diretamente no rótulo Button do arquivo de layout" 2000).show(); } }
acima4essa forma, o3essa maneira é usada mais frequentemente. Quando há vários botões no mesmo activity que precisam acionar o evento click, através do3essa forma é mais fácil de gerenciar e manter o código de evento do botão.
O layout é um conteúdo muito importante, que será explicado em um blog a seguir, aqui apenas mencionei brevemente.
Usamos o LinearLayout (layout linear, outros incluem layout relativo, layout absoluto etc.), definimos a propriedade Android:orientation como vertical (vertical), começando a exibir os componentes de cima para baixo.
Outros3um arquivo de layout com o mesmo conteúdo, todos eles apenas colocam um botão.
A configuração do arquivo activity_main.xml é a seguinte (coloca-se simplesmente):4um botão):
<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:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.test.MainActivity" > <Button android:id="@"+id/btn1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/cliqueAqui1" /> <Button android:id="@"+id/btn2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/cliqueAqui2" /> <Button android:id="@"+id/btn3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/cliqueAqui3" /> <Button android:id="@"+id/btn4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/cliqueAqui4" android:onClick="btnClickEvent"/> </LinearLayout>
a passo mais importante, é necessário configurar o registro da Activity no arquivo AndroidManifest.xml, a configuração completa é a seguinte:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".ButtonActivity"1" android:label="@string/button1" /> <activity android:name=".ButtonActivity"2" android:label="@string/button2" /> <activity android:name=".ButtonActivity"3" android:label="@string/button3" /> <activity android:name=".ButtonActivity"4" android:label="@string/button4" /> </application> </manifest>
aqui há um ponto importante a ser notado,
<action android:name="android.intent.action.MAIN" />
Defina MainActivity como "Activity Principal", ou seja, a Activity que será exibida primeiro ao inicializar.
Os vários activities listados abaixo precisam ser registrados no "arquivo de lista", para que o programa possa encontrar essas Activities.
Conteúdo configurado no arquivo strings.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">test</string> <string name="hello_world">Olá mundo!/string> <string name="action_settings">Configurações</string> <string name="clickMe1">botão evento1</string> <string name="clickMe2">botão evento2</string> <string name="clickMe3">botão evento3</string> <string name="clickMe4">botão evento4</string> <string name="button1">botão1</string> <string name="button2">botão2</string> <string name="button3">botão3</string> <string name="button4">botão4</string> </resources>
Claro, você também pode escrever diretamente no arquivo layout, mas isso é mais útil para a manutenção, que é o método recomendado para o desenvolvimento Android.
Os quatro métodos de escrita de evento de clique de activity no Android que o editor apresentou acima, espero que ajudem a todos. Se você tiver alguma dúvida, por favor, deixe um comentário, o editor responderá a tempo. Agradecemos também o apoio do site tutorial de gritaria!
Declaração: O conteúdo deste artigo é extraído da internet, pertencente ao respectivo detentor dos direitos autorais, upload feito voluntariamente pelos usuários da internet, o site não possui direitos de propriedade, não foi editado artificialmente e não assume responsabilidade legal relevante. Se você encontrar conteúdo suspeito de violação de direitos autorais, envie um e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar, e forneça provas relevantes. Se confirmado, o site exclui imediatamente o conteúdo suspeito de infringência de direitos autorais.)