码迷,mamicode.com
首页 > 其他好文 > 详细

5.26

时间:2016-05-27 11:11:12      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

  1.   活动
  • 手动创建活动
  • 创建和加载布局--写完布局以后要在活动中加载该布局,不加载你留着干嘛?使用setContentView来加载。
    • oncreate()--添加setContentView(R.layout.first_layout)
      public class FirstActivity extends Activity {
      	@Override
      	public void onCreate(Bundle savedInstanceState) {
      		super.onCreate(savedInstanceState);
      		requestWindowFeature(Window.FEATURE_NO_TITLE);
      		setContentView(R.layout.first_layout);
     }   }
  • 任何一个活动都要在AndroidManifest.xml中注册
    • -------------- 注册哪一个活动,活动标题是什么?
          <application
              android:allowBackup="true"
              android:icon="@drawable/ic_launcher"
              android:label="@string/app_name"
              android:theme="@style/AppTheme" >
              <activity 
                  android:name=".FirstActivity"
                  android:label="This is FirstActivity!">
                  	<intent-filter>
                  	    <action android:name="android.intent.action.MAIN"/>
                  	    <category android:name="android.intent.category.LAUNCHER"/>
                  	</intent-filter>
              </activity>
              <activity 
                  android:name=".SecondActivity">
                  <intent-filter>
                      <action android:name="com.example.activitytest.ACTION_START"/>
                      <category android:name="android.intent.category.DEFAULT"/>    
                      <category android:name="com.example.activitytest.MY_CATEGORY"/>
                      </intent-filter>
              </activity>
              <activity 
                  android:name=".ThirdActivity">
                  <intent-filter>
                      <action android:name="android.intent.action.VIEW"/>
                      <category android:name="android.intent.category.DEFAULT"/>
                      <data android:scheme="http" />
                  </intent-filter>
              </activity>
          </application>
  • 隐藏标题栏
    • ---- 代码要在setContentView()前,即在加载该布局前。
      public class FirstActivity extends Activity {
      	@Override
      	public void onCreate(Bundle savedInstanceState) {
      		super.onCreate(savedInstanceState);
      		requestWindowFeature(Window.FEATURE_NO_TITLE);
      		setContentView(R.layout.first_layout);     }   }
  • 在活动中使用Toast弹窗
    • 定义触发点---注册监听器
      public void onCreate(Bundle savedInstanceState) {
      		super.onCreate(savedInstanceState);
      		requestWindowFeature(Window.FEATURE_NO_TITLE);
      		setContentView(R.layout.first_layout);
      	    Button button1=(Button)findViewById(R.id.button_1);
      	    button1.setOnClickListener(new OnClickListener() {
      			@Override
      			public void onClick(View v) {
      				Toast.makeText(FirstActivity.this,”You clicked Button 1”,Toast.LENGHT_SHORT).show();			}
      		});
      		
      	}
     findView返回一个view对象,需要向下转型为Button对象,得到按钮的实例之后,需要调用setonclicklistener()方法
为按钮注册一个监听器,点击按钮就会执行onclick中的方法。
     监听器的还可用作利用Intent在活动之间穿梭。
  • 在活动中是用使用Menu
    • 创建菜单文件----重写onCreateOptionMenu()方法--定义菜单响应事件(重写onOptionItemSelected方法)

  创建菜单文件---res--Menu-main.xml,而非布局文件。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
	<item 
	    android:id="@+id/add_item"
	    android:title="Add"/>
	<item 
	    android:id="@+id/remove_item"
	    android:title="Remove"/>    

</menu>

打开FirstActivity,重写oncreateoptionMenu方法,

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);//第一个参数指定通过那个资源文件来创建菜单,第二个参数指定我们的菜单项将添加到哪个Menu对象中去。
		return true;  //表示允许该菜单显示出来
	}
菜单相应事件---onOptionsItemSelected()
public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case R.id.add_item:
			Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
			break;
		case R.id.remove_item:
			Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();
			break;
		default:
		}
		return true;
	}
}

   2.    使用Intent在活动之间穿梭---思考:是否可利用该方法实现页面之间的跳转?

  • 显式--->步骤--->Intent参数
    • 先建立另一个布局
    • 在src中建立另一个活动,加载该布局,同时设置无标题栏--->为该活动注册
    • 修改它的主活动的点击事件--onclick--->重载Intent方法—>利用startActivity接受构建好的intent参数并实现启动该活动。
      Button button1=(Button)findViewById(R.id.button_1);
      button1.setOnClickListener(new OnClickListener() {
      			
      	@Override
      	public void onClick(View v) {
      		Intent intent=new Intent(FirstActivity.this,SecondActivity.class);//第一个参数表启动活动的上下文,第二个表示要启动的目标活动
		       intent.setData(Uri.parse("tel:10086"));
		       startActivity(intent);
	}
	});

  • 隐式--->步骤--->。。。参数
    • 修改配置文件中的活动二,声明action和category。
       <activity 
                  android:name=".SecondActivity">
                  <intent-filter>
                      <action android:name="com.example.activitytest.ACTION_START"/>
                      <category android:name="android.intent.category.DEFAULT"/>    
                      <category android:name="com.example.activitytest.MY_CATEGORY"/>
                      </intent-filter>
              </activity>
    • 修改主活动中点击事件onclick--->……………
      @Override
      	public void onClick(View v) {
      		Intent intent=new Intent("com.example.activitytest.ACTION_START")
      		startActivity(intent);
      	}
      });
    • 如果onclick中有不是默认的category,需要在配置文件中进行声明,调到1步,声明多个category。
      @Override
      	public void onClick(View v) {
      		Intent intent=new Intent(Intent.ACTION_DIAL);
      		intent.setData(Uri.parse("tel:10086"));
      		startActivity(intent);
      	}
      });
      此时需要在配置文件中配置:
      <activity 
                  android:name=".ThirdActivity">
                  <intent-filter>
                      <action android:name="android.intent.action.VIEW"/>
                      <category android:name="android.intent.category.DEFAULT"/>
                      <data android:scheme="http" />
                  </intent-filter>
              </activity>

5.26

标签:

原文地址:http://www.cnblogs.com/huangytao/p/5533636.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!