English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Quatro maneiras de escrever eventos de botão de transição de activity no Android

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.)

Você também pode gostar