开始为第一个用户界面添加一个小功能
(注:android stdio的版本为3.0.1,不同版本可能存在一定的差异,学习时建议在谷歌官网下载最新版)
给按钮添加功能
- 打开 app > java > com.example.myfirstapp(你当初创建的文件名) > MainActivity 添加几行代码,现在暂时不了解这些代码没有关系,可以理解为给程序添加功能所必要的条件。
java版本
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/** Called when the user taps the Send button */
public void sendMessage(View view) {
// Do something in response to button
}
}
KOTLIN(2017年开始支持kotlin)
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
/** Called when the user taps the Send button */
fun sendMessage(view: View) {
// Do something in response to button
}
}
添加了这些代码后,你可能会看到如图所示的许多小错误,下面我们来修复他们
选择错误的地方,然后按下快捷键option+enter 会出现快捷修复选项,我们选择import class
-
返回 activity_main.xml文件,我们添加button和这个sendmessage之间的关联。
选择button,然后在属性页面中搜索oncilck(意思是当你触碰这个按钮时会触发的功能)
我们选择sendmessage,也就是我们刚刚在代码中添加的那一行功能。
现在只要我们点击这个按钮,系统就会响应sendmessage这一几行代码。
建立一个intend
intend通常用于两个活动之间提供运行时绑定的对象
- 在MainActivity,添加EXTRA_MESSAGE和 sendMessage代码(目前只提供java)
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/** Called when the user taps the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.editText);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}
添加完后,你的代码应该是这个样式的
(仍有部分错误:DisplayMessageActivity)
不过没有关系,现在我们就来解决它
在project窗口中,右键单击app 文件夹选择New > Activity > Empty Activity.
更改这个新的activity的名字为displaymessageactivity, 点finish
添加文字反馈
我们创建好了这个新的空白的activity后,打开app > res > layout > activity_display_message.xml.
像之前学过的一样,这次我们添加一个textview(还记得第一节课的helloworld吗?),唯一的不同是记得打开图上红框的按钮
可以在属性面板给他添加你喜欢颜色以及大小
显示文字
打开DisplayMessageActivity文件,添加如下代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
// Get the Intent that started this activity and extract the string
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
// Capture the layout's TextView and set the string as its text
TextView textView = findViewById(R.id.textView);
textView.setText(message);
}
如果代码正确,应该显示为下图(有不对的地方请用option+enter自动修复)
添加导航栏
部分安卓手机是没有返回按钮的,所以我们要给他添加一个导航栏
打开app > manifests > AndroidManifest.xml
添加如下代码
<activity android:name=".DisplayMessageActivity"
android:parentActivityName=".MainActivity">
<!-- The meta-data tag is required if you support API level 15 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
好了,到这里,你的第一个有着完整功能的app就建好了,插上你的安卓手机,安装你亲手写的app试试吧,他的效果应该就像下图一样