携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情
如果你认真看,读800字就可以学会这个App。
一、我讲
今天,我先讲Android MVC模型的界面操作,再说TextView、Button两个控件的使用。
1.1 MVC
Android开发给Java开发讲MVC模型,多此一举了。
graph TD
M[Model模型] --> V[View视图]
C[Controller 控制器] --> V
C --> M
复制代码
优弧说不要讲烂大街的东西。我此处稍微一提MVC在Android中是如何界定的。
看这个皮影戏,艺人按照剧本操作皮影人物在幕布上表演,这就是典型的MVC。
在安卓项目里,Activity就是艺人(控制器Controller)。layout下的xxx.xml就是皮影幕布(视图View)。
今天就说这俩, 模型Model用不到,所以不说。
1.2 控件:文本和按钮
Android中,展示文本的控件叫TextView,按钮叫Button。
视图的代码在layout文件夹中,控件的定义采用的是xml格式。
比如,文本控件TextView在xml中这么定义:
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"/>
它有很多属性:
其实,按钮Button也是一样:
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击开始"/>
说完了视图View,再说控制器Controller。我们如何来控制这些控件呢?
比如,让文本显示指定的内容,再比如点击按钮触发一个操作。
首先第一步就是找到控件。然后,给它赋值或者绑定监听事件。
// 第一步:根据ID属性找到对象
TextView textView = findViewById(R.id.tv);
// 第二步:让他的内容改变
textView.setText("hi, 船长");
//第一步:根据ID属性找到对象
Button button = findViewById(R.id.btn);
//第二步:给它设置监听
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.setText("hi,优弧"); // 点击之后执行操作
}
});
上面的代码,要在Activity中执行。
二、你做
下面,我想让你做下面这个功能,也是开头那张图。
新建项目之后,会自动生成一个Activity和一个xml布局,就用那两个文件就可以了。
2.1 写布局
首先我们找到layout下的activity_main.xml布局,可以看到它有Code和Design两种模式。
你可以在Code模式下写入控件的xml定义。当然,也可以拖对应的控件到画布上。
但是效果都是一样的,最终都是生成了代码。
<android.support.constraint.ConstraintLayout>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="幸运大奖,会是谁呢???" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="抽取幸运掘友,你真掘了" />
</android.support.constraint.ConstraintLayout>
2.2 写逻辑
然后再找到MainActivity,加入如下代码:
public class MainActivity extends AppCompatActivity {
String[] names = new String[]{"优弧","船长","托尼","春哥","若川巨","南方佬"};
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int i = new Random().nextInt(names.length);
textView.setText(names[i]);
}
});
}
很惊喜,全是Java代码,我都不用解释了。总体上就是搞了一个字符串数组,然后点击一下按钮,给文本随机设置一个数组里的值。
最后,点击顶部的Run图标,选择模拟器,程序就跑起来了。
三、关于
现在,行业内多是Android转Java,很少有Java转Android的。
但是,这并不妨碍Java同学了解Android开发,从学习的角度去拓宽自己的知识面。
所以,我会以最精简的语言来编写一个系列教程《Java转Android》(第一季30篇,日更)。
其实,不管是Java还是python,只要有编程基础的同学,一天看800字,30天可入门安卓。