标签:时间 over 选择 加载布局 prot end idm 多个 click
Activity(活动)是最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序中应该包括零个或多个Activity。
右击–》New–》Activity–》Empty Activity,会弹出这样的一个框
勾选Generate Layout File表示会自动为FirstActivity创建一个对应的布局文件,勾选Launcher Activity表示会自动将FirstActivity设置为当前项目的主活动。第一次使用不需要勾选。勾选Backward Compatibility表示会为项目启用向下兼容的模式。
public class FirstActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
可以看到,onCreate()方法非常简单,就是调用了父类的onCreate()方法。当然这只是默认的实现,后面我们还可以加上很多自己的逻辑。
Android程序的设计讲究逻辑和视图分离,最好每一个活动都能对应一个布局,布局就是用来显示界面内容的,因此我们现在手动创建一个布局文件
回到FirstActivity界面,在onCreate()方法中加入如下代码:
setContentView(R.layout.first_layout);
所有的活动都需要在AndroidManifest注册才能生效,而实际上FirstActivity已经在AndroidManifest.xml中注册过了,我们打开app/src/main/AndroidManifest.xml文件可以看到如下代码:
可以看到,活动的注册声明都要放在
修改后的AndroidManifest.xml文件,代码如下所示:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
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>
</application>
</manifest>
这样的话,FirstActivity就成为我们这个程序的主活动了,即点击桌面应用程序图标时应首先打开的就是这个活动。另外需要注意,如果你的应用程序中咩有声明任何一个活动作为主活动,这个程序仍然是可以正常安装的,只是你无法再启动中看到或者打开这个程序。这种程序一般都是作为第三方服务供其他应用在内部进行调用的,如支付宝快捷支付服务。
Toast是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间。
首先需要定义一个弹出Toast的触发点,正好之前程序界面上有一个button,我们可以让点击这个按钮的时候弹出一个Toast。在OnCreate()方法中添加如下代码:
public class FirstActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
Button button1 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FirstActivity.this, "You clicked Button", Toast.LENGTH_SHORT).show();
}
});
}
}
在活动中,可以通过findViewById()方法获取到在布局文件中定义的元素,这里我们传入R.id.button2,来得到按钮的实例,这个值是刚才在first_layout.xml中通过android:id
属性指定的。findViewById()方法返回的是一个View对象,我们需要向下转型将它转成Button对象。得到那妞的实例之后,我们通过调用setOnClick()方法。因此,弹出Toast的功能当然是要在按键的单击事件中去编写。
Toast的用法非常简单,通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来就可以了。
这里需要注意的是,makeText()方法需要传入3个参数。
第一个参数是Context,也就是Toast要求的上下文,由于活动本身就是一个Context对象这里直接传入FirstActivity.this即可。
第二个参数是Toast显示的文本内容。
第三个参数是Toast显示的时长,有两个内置常量可以选择Toast.LENGTH_SHORT和Toast.LENGTH_LONG。
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_iten"
android:title="Add"/>
<item
android:id="@+id/remove_item"
android:title="Remove"/>
</menu>
这里我们创建2个菜单项,其中
添加代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu,menu);
return super.onCreateOptionsMenu(menu);
}
通过getMenuInflater()方法能够得带MenuInflater对象,再调用它的的inflate()方法就可以给当前活动创建菜单了。Inflate()方法接收2个参数,第一个参数用于指定我们通过哪一个资源文件来创建菜单,这里当然传入R.menu.main。第二个参数用于指定我们的菜单项将添加到哪一个指定的Menu对象当中,这里直接使用onCreateOptionMenu()方法中传入的menu参数。然后给这个方法返回ture,表示允许创建的菜单显示出来。如果返回了false,创建的菜单将无法显示。
代码如下:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.add_iten:
Toast.makeText(this,"You Click 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;
// return super.onOptionsItemSelected(item);
}
运行程序会看到标题栏多了一个三点的符号的,这就是菜单按钮了
@Override
public void onClick(View v) {
finish(); //j结束当前活动
// Toast.makeText(FirstActivity.this, "You clicked Button", Toast.LENGTH_SHORT).show();
}
标签:时间 over 选择 加载布局 prot end idm 多个 click
原文地址:http://www.cnblogs.com/aqyl/p/6601463.html