2019年一月三日,在公司做毕业设计第二天。第一天几乎什么都没做,就简单做了一下项目介绍。从今天开始学习Android,也从今天开始写我的学习博客,主要是为了记住自己学过的东西,方便以后查找!
1.从新建一个项目开始
1.1活动的基本用法
新建项目时选择Add no activity。点击app/src/main/java/com.example.activitytest→new→activity→emptyactivity并将活动命名为FirstActivity不要勾选generate layout file和launcher activity。
1.1.1创建和添加布局
app/src/main/res→new→directory创建名为layout的目录。在layout目录下new→layout resource file新建一个名为first_layout的布局文件。根元素默认linearlayout。
添加按钮:
点击layout/first_layout.xml在text编辑(左下角)模式下在代码中增添:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="button1"
/>
</LinearLayout>
这里的代码添加了一个button元素。
Android:id是给当前元素定义的惟一的标识符,可以通过这个标识符对这个按钮进行操作。
android:id="@+id/button1"是在xml当中引用一个id的用法。标准格式为:android:id="@+id/id_name"
android:layout_width="match_parent"定义当前元素的宽度,match_parent表示当前元素和父元素一样宽。
android:layout_height="wrap_content"定义高度为刚好包含所有内容。
android:text="button1"定义元素中显示的文字内容。
在活动中加载新建的布局
在firstactivity中的oncreate方法中加入:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
通过调用setContentView()方法给当前活动加载布局。并传入布局文件的id:R.layout.first_layout。(在项目中添加的任何资源都会在R文件当中生成一个资源id)
1.1.2在AndroidManifest文件中注册
定义主活动:
所有的活动都需要在Androidmanifest文件中注册之后才会生效,在Androidmanifest中添加代码:
<activity android:name=".FirstActivity"
android:label="this is first activity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
将FirstActivity定义为程序的主活动。即点击桌面应用程序时首先打开这个活动。
1.1.3在活动中使用Toast
toast是Android系统提供的一种提醒方式。将一些短小的信息通知用户,这些提示信息在一段时间后会自动消失。
定义一个弹出Toast的触发点(实例演示从上面定义的button1触发):
在oncreate方法中添加代码:
setContentView(R.layout.first_layout);
Button button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View V)
{
Toast.makeText(FirstActivity.this,"you click button1",Toast.LENGTH_SHORT).show();
}
});
}
在活动中通过findViewById()方法获取在文件中定义的元素(R.id.button1)来得到按钮的实例。该方法返回一个View对象。一通过setOnClickListener()方法为按钮注册监听器,点击时执行OnClick方法。
在OnClick方法中编写Toast功能,通过makeText方法创建一个Toast对象,调用show()将Toast显示出来。makeText()方法的三个参数:
- context:即Toast要求的上下文,由于活动本身就是一个context对象,因此直接传入FirstActivity.this。
- 文本内容:点击之后要显示给用户的文本内容。
- Toast显示的时长:可以选择Toast.LENGTH_SHORT和Toast.LENGTH_LONG。
运行之后,点击按钮之后显示提示文字。
1.1.4在活动中使用Menu
在res目录下新建一个menu文件夹,再在menu文件夹内new一个Menu Resource File,输入文件名为main。
在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>
上述中创建两个菜单项,<item>标签用于创建具体的某一个菜单项,并用android:id给菜单项创建唯一标识符,通过android:title给菜单项指定一个名称。
在firstActivity中重写onCreateOptionsMenu()方法(重写方法可以ctrl+O快捷键)。在onCreateOptionsMenu()方法中编写
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
通过getMenuInflater()方法得到MenuInflater对象。再调用inflate()方法给当前活动创建菜单。inflate()方法的两个参数:
- 第一个参数用于指定通过哪一个资源文件来创建菜单(这里传入R.menu.main)
- 第二个参数用于指定我们的菜单项将添加到哪一个menu对象当中去,这里直接使用onCreateOptionsMenu()方法传入的menu参数,然后给这个方法返回true表示允许创建的菜单显示出来。false表示菜单将无法显示。
再定义菜单响应事件,在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;
}
重新生成时就会增加菜单,点击添加时提示添加信息。
1.1.5销毁活动
在按钮的监听代码中的Onclick方法中添加finish()方法。