English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
具体实现代码:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1. 采用实现OnClickListener接口的类 ((Button) findViewById(R.id.btn1)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity1.class); startActivity(intent); } }); // 方法2. 采用匿名内部类 ((Button) findViewById(R.id.btn2)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity2.class); startActivity(intent); } }); // 方法3. Activity直接实现OnClickListener接口 ((Button) findViewById(R.id.btn3)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity3.class); MainActivity.this.startActivity(intent); } }); // 方法4.标签直接标注触发事件 ((Button) findViewById(R.id.btn4)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity4.class); MainActivity.this.startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // 加载菜单;如果存在action bar,这会将项目添加到action bar中。 getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // 在这里处理action bar项的点击事件。如果存在action bar,action bar将会 // 系统会自动处理Home/Up按钮的点击事件,只要你的Activity中存在action bar。 // 如你在AndroidManifest.xml中指定了一个父Activity。 int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }
上面代码中:
1、我们建立的MainActivity类需要继承自Activity
2、需要覆写onCreate方法,并通过setContentView方法加载相应的layout(布局)文件
3、通过findViewById方法找到相应的控件(在layout布局文件中定义的控件)并绑定一个Click事件(Java中通过监听器实现,C#中通过委托实现)
4、可以通过Intent对象传递数据并跳转到其它的Activity
5、onCreateOptionsMenu和onOptionsItemSelected是添加和选中菜单项时的方法。
以下是分别四个activity的内容:
第一种:
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, "Questa è la prima forma dell'evento, definizione dell'evento nella classe interna", 2000).show(); } } }
Secondo 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, "Questa è la seconda forma dell'evento, forma di classe interna anonima", 2000).show(); } }); } }
Terzo 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, Toast.makeText(ButtonActivity3.this, "Questa è la terza forma dell'evento, implementazione diretta dell'interfaccia OnClickListener e metodo OnClick", 2000).show(); break; default: Toast.makeText(ButtonActivity3.this, "Non è stato attivato", 2000).show(); break; } } }
Quarto tipo:
Deve specificare il metodo btnClickEvent nel file xml di layout.
<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.Button4Activity" > <Button android:id="@+id/btn4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Clicca qui" 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, "Questa è la quarta versione dell'evento, direttamente nel tag Button del file di layout", 2000).show(); } }
Dei 4 modi di scrittura elencati, il terzo metodo è usato più spesso. Quando ci sono molti pulsanti in un'activity che devono generare eventi di click, il terzo metodo è più facile da gestire e mantenere il codice degli eventi dei pulsanti.
La布局 è un contenuto molto importante, lo spiegherò nel blog seguente, qui ne menziono solo una breve citazione.
Usiamo LinearLayout (layout lineare, ci sono anche layout relativo, layout assoluto, ecc.), impostiamo l'attributo Android:orientation a vertical (verticale), visualizzando i controlli in ordine dall'alto verso il basso.
Gli altri 3 file di layout sono identici a questo, contengono solo un pulsante.
La configurazione di activity_main.xml è la seguente (contiene semplicemente 4 pulsanti):
<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/clickMe1" /> <Button android:id="@+id/btn2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clickMe2" /> <Button android:id="@+id/btn3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clickMe3" /> <Button android:id="@+id/btn4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clickMe4" android:onClick="btnClickEvent"/> </LinearLayout>
L'ultimo passo più importante è configurare l'Activity registrata nel file AndroidManifest.xml, la configurazione completa è la seguente:
<?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=".ButtonActivity1" android:label="@string/button1" /> <activity android:name=".ButtonActivity2" android:label="@string/button2" /> <activity android:name=".ButtonActivity3" android:label="@string/button3" /> <activity android:name=".ButtonActivity4" android:label="@string/button4" /> </application> </manifest>
C'è un punto da notare qui:
<action android:name="android.intent.action.MAIN" />
Imposta MainActivity come 'Activity principale', ossia quella che viene visualizzata per prima al lancio.
Tutte le attività elencate di seguito devono essere registrate nel file 'manifesto', in modo che il programma possa trovare queste Activity.
Contenuto configurato nel file strings.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">test</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Impostazioni</string> <string name="clickMe1">Evento pulsante 1</string> <string name="clickMe2">Evento pulsante 2</string> <string name="clickMe3">Evento pulsante 3</string> <string name="clickMe4">Evento pulsante 4</string> <string name="button1">Pulsante 1</string> <string name="button2">Pulsante 2</string> <string name="button3">Pulsante 3</string> <string name="button4">Pulsante 4</string> </resources>
Naturalmente, puoi anche scrivere direttamente nel file layout, ma questo è più utile per la manutenzione, è anche il metodo raccomandato per lo sviluppo Android.
Naturalmente, puoi anche scrivere direttamente nel file layout, ma questo è più utile per la manutenzione, è anche il metodo raccomandato per lo sviluppo Android. Spero che questo aiuti. Se hai domande, fammi sapere, risponderò prontamente. Ringrazio anche tutti per il supporto al sito web Yell Guide!
Dichiarazione: il contenuto di questo articolo è stato prelevato da Internet, di proprietà del rispettivo autore. Il contenuto è stato caricato autonomamente dagli utenti di Internet, il sito web non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una email a notice#oldtoolbag.com (sostituisci # con @) per segnalare il problema, fornendo prove pertinenti. Una volta verificata la veridicità, il sito web rimuoverà immediatamente il contenuto sospetto di violazione del copyright.