android学习心得之Activity
安卓是什么
android是基于linux内核实现的操作系统,不同与其他系统的是,安卓系统在分配进程时,每个进程先安装了jvm,每个安卓app都运行在独立的jvm上,这样安卓app之间就不会发生冲突了。安卓基本的内容
Activity
Activity是直接与用户进行接触的界面,一个app里面可以包含一个或多个Activity。
Acitivity里面有一些常见的方法:
首先是Toast()方法,这个方法可以弹出消息框。
ackage com.example.newcardgame;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button1 = (Button)findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener(){public void onClick(View v) {Toast.makeText(MainActivity.this, "You clicked Button1",Toast.LENGTH_SHORT).show();}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

Activity中的menu:
手机的屏幕是有限的,为了节约显示空间,安卓系统有menu这一个组件,可以让用户在需要的时候才点击munu来选择一些比较少用的选项,而不是让所有选项都布满整个屏幕。
使用menu很简单,首先是在res文件夹中的menu文件夹中的main.xml文件夹中添加选项:
<menu xmlns:android="http://schemas.android.com/apk/res/android" ><itemandroid:id="@+id/action_settings"android:orderInCategory="100"android:showAsAction="never"android:title="@string/action_settings"/><itemandroid:id ="@+id/add_item"android:title="Add"/><itemandroid:id="@+id/remove_item"android:title="Remove"/></menu>
接着首先是要在Activity中显示menu,用onCreateOptionsMenu方法里面添加getMenuInflater().inflate(R.menu.main, menu);
这行代码,然后是添加点击选项的选择事件,用onOptionsItemSelected方法
package com.example.newcardgame;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button1 = (Button)findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener(){public void onClick(View v) {Toast.makeText(MainActivity.this, "You clicked Button1",Toast.LENGTH_SHORT).show();}});}public boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}public boolean onOptionsItemSelected(MenuItem item){switch(item.getItemId()){case R.id.add_item:Toast.makeText(MainActivity.this, "you clicked add",Toast.LENGTH_SHORT).show();break;case R.id.remove_item:Toast.makeText(MainActivity.this, "you clicked remove",Toast.LENGTH_SHORT).show();break;default:}return true;}}

既然一个Activity是一个界面,一个程序往往是需要在多个界面之间转换,因此需要一个中转的组件,Intent就是一个这样的组件,他实现Activity之间的切换,还帮助页面之间传递数据。
Intent有两种用法,显示Intent和隐式Intent
显示Intent,顾名思义就是用new方式创建的Intent里面指明需要切换的Activity
首先先创建一个新的Activity,并且在layout里面设置新的界面。在Activity通过创建Intent来创建新Activity
package com.example.newcardgame;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button1 = (Button)findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener(){public void onClick(View v) {Intent intent = new Intent(MainActivity.this,SecondActivity.class);startActivity(intent);}});}}
隐式Intent
隐式Intent不用在new Intnt的时候指明需要转换的Acivity只需要指明action类型和种类,在AndroidMainfest.xml文件种配置每个Acitvity的种类,在程序运行的时候就会通过拦截器实现找到实际实现的Activity。
<activity android:name=".SecondActivity"><intent-fileter><action android:name="com.example.activityest.ACTION_START" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity>
button1.setOnclickListener(new OnClickListener(){public void onClick(View v){Intent intent = new Intent("com.example.activitytest.ACTION_START");intent.addCategory("com.example.activitytest.MY_CATEGORY");startActivity(intent);}});
通过Intent可以向别的Activity以键值对的方式传递数据
intent.putExtra("extra_data",data);
数据接收Activity通过如下方式获得数据:
Intent intent = getIntent();String data = inent.getStringExtra("extra_data");
                    
                
                
            
        
浙公网安备 33010602011771号