教我徒弟Android开发入门(一)
前言:
这个系列的教程是为我徒弟准备的,也适合还不懂java但是想学android开发的小白们~
本系列是在Android Studio的环境下运行,默认大家的开发环境都是配置好了的
没有配置好的同学请前去百度下载Android Studio
之后,参照我的下面这个教程将Android Studio配置好
http://www.cnblogs.com/kexing/p/7455786.html
主要目标:
第一篇就简单从界面开始吧,今天我们的目标就是做一个仿QQ登录界面的登录界面,输入相应的账号与密码,点击登录按钮,提示登录成功,若输入不对的账号与密码,则提示登录失败



正文:
新建一个项目
file->New project

接下来就会出现新建项目的相关设置

下一步

下一步

下一步

点击finish就成功创建一个APP了
之后在左侧的目录依次展开,找到activity_mian的这个文件,打开

可能你的界面没有出现如我图中右侧的预览图,请查看右侧,有个priview,点击它就能显示预览图了
这个预览图也就是我们打开APP显示的界面预览图
我们要仿QQ界面登录的界面,也就是要修改这个界面所要显示的东西,这里需要Android的View基础部分,我在这里不多说,建议大家先去了解一番再往下看
我们切换到Design的模式,在这个模式中,把所需要的控件拖到相应位置,之后再设置相关属性大小即可

虽然在Design模式的右边,有设置属性的相关选项,不过我还是喜欢直接回到之前的界面,也就是Text模式中进行代码修改

贴上代码
activity_main
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.wan.login.MainActivity"> <TextView
android:id="@+id/textView" android:layout_width="wrap_content"
android:layout_height="30dp"
android:gravity="center"
android:text="用户名"
android:textSize="15dp" android:layout_marginLeft="62dp"
android:layout_marginStart="62dp"
android:layout_marginTop="114dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/> <TextView
android:id="@+id/textView1" android:layout_width="wrap_content"
android:layout_height="30dp"
android:gravity="center"
android:text="密码" android:layout_alignEnd="@+id/textView"
android:layout_alignRight="@+id/textView"
android:layout_below="@+id/textView"
android:layout_marginTop="40dp"
android:layout_alignLeft="@+id/textView"
android:layout_alignStart="@+id/textView"/> <EditText
android:id="@+id/editText3"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:ems="10"
android:gravity="center"
android:textSize="15dp"
android:inputType="textPersonName" android:layout_alignTop="@+id/textView"
android:layout_toRightOf="@+id/textView"
android:layout_toEndOf="@+id/textView"
android:layout_marginLeft="30dp"
android:layout_marginStart="30dp"/> <EditText
android:id="@+id/editText5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText3"
android:layout_alignStart="@+id/editText3" android:ems="10"
android:inputType="textPassword"
android:layout_alignBottom="@+id/textView1"/> <Button
android:id="@+id/button" android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="登录"
android:textColor="#FCFCFC"
android:background="#1C86EE" android:layout_marginTop="28dp"
android:layout_below="@+id/textView1"
android:layout_alignLeft="@+id/textView1"
android:layout_alignStart="@+id/textView1"
android:layout_alignRight="@+id/editText5"
android:layout_alignEnd="@+id/editText5"/>
</RelativeLayout>
不要全部都复制哦,肯定会错误的
还有MainActivity
package com.wan.login; import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText; public class MainActivity extends AppCompatActivity implements View.OnClickListener { /**
* 登录
*/
private Button mButton;
private EditText mname,mpassword;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView(); } private void initView() {
mname = (EditText) findViewById(R.id.editText3);
mpassword = (EditText) findViewById(R.id.editText5);
mButton = (Button) findViewById(R.id.button);
mButton.setOnClickListener(this);
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
String name,passwoed;
String user = "User";
String userpassword = "123456"; name = mname.getText().toString();
passwoed = mpassword.getText().toString(); final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
if(name.equals(user)&&passwoed.equals(userpassword)){
builder.setMessage("登录成功");
builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
}else{
builder.setMessage("登录失败");
builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
}
builder.show();
break;
default:
break;
}
}
}
之后使用模拟器就是可以看到结果了

如果想要安装到手机的话,请看下面

成功生成apk之后,在右下角会有个提示框,点击show,就是进入到资源管理器
教我徒弟Android开发入门(一)的更多相关文章
- 教我徒弟Android开发入门(二)
前言: 上一期实现了简单的QQ登录效果,这一期继续对上一期进行扩展 本期的知识点: Toast弹窗,三种方法实现按钮的点击事件监听 正文: Toast弹窗其实很简单,在Android Studio ...
- 教我徒弟Android开发入门(四)
本期知识点: 两大常用布局的简单介绍 在我们的APP使用第三方库 Android Studio常用快捷键 一.两大常用布局 1.LinearLayout线性布局 线性布局,可以垂直显示或者水平显示,设 ...
- 教我徒弟Android开发入门(三)
前言: 老实说,我有点不知道该讲什么了,希望看过的人能给我提提意见,感激不尽. 本期知识点: 长按事件,log的简单使用,双击退出程序功能的实现 正文: 上一期我们了解到点击事件其实就是让控件绑定一个 ...
- Android开发入门
教我徒弟Android开发入门(一) 教我徒弟Android开发入门(二) 教我徒弟Android开发入门(三) 出处:http://www.cnblogs.com/kexing/tag/Androi ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解
原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...
- [译]:Xamarin.Android开发入门——Hello,Android深入理解
返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- Android开发入门经典【申明:来源于网络】
Android开发入门经典[申明:来源于网络] 地址:http://wenku.baidu.com/view/6e7634050740be1e650e9a7b.html?re=view
- Android开发入门要点记录:四大组件
cocos2dx跨平台开发中需要了解android开发,昨天快速的浏览了一本Android开发入门教程,因为之前也似懂非懂的写过Activity,Intent,XML文件,还有里面许多控件甚至编程思想 ...
随机推荐
- SpringMVC 异常的处理
Spring MVC处理异常有3种方式: (1)使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver: (2)实现Spring的异常处理接口Hand ...
- gulp-prompt入个了门
gulp-prompt版本:0.4.1 源码:gulp-prompt 一.gulp-prompt的简介 gulp-prompt 是一个基于gulp的命令行提示. 我们可以用它来完成命令行中互动功能. ...
- 三、第一个IDEA创建的MAVEN工程——JavaWeb点滴
一.Maven是什么? Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个 ...
- Codeforces Round #443 (Div. 2) C. Short Program
C. Short Program time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- Linux系列教程(十二)——Linux软件包管理之yum在线管理
上一篇博客我们介绍了rpm包管理之rpm命令管理,我们发现在使用rpm命令手动安装rpm包的时候,会发现安装遇到到的依赖让你痛不欲生,安装一个rpm时会要先先安装某个依赖的rpm,而安装这个依赖的rp ...
- CIFAR-10 dataset 的下载与使用
基本信息 CIFAR-10 是一个包含60000张图片的数据集.其中每张照片为32*32的彩色照片,每个像素点包括RGB三个数值,数值范围 0 ~ 255. 所有照片分属10个不同的类别,分别是 'a ...
- HTML学习笔记 cs动画基础(分列效果可用于做瀑布流) 第十五节 (原创) 参考使用表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Oracle的Recyclebin策略
1.从oracle10g开始删除数据库表的时候并不是真正删除,而是放到了recyclebin中,这个过程类似 windows里面删除的文件会被临时放到回收站中. 2.删除的表系统会自动给他重命名就是你 ...
- 高阶函数实现AOP
AOP(面向切面程序)的主要作用是把一些跟核心业务逻辑模块无关的功能抽离出来,这些跟业务逻辑无关的功能通常包括日至统计.安全控制.异常处理等.把这些功能抽离出来之后,再通过"动态织入&quo ...
- python 小白(无编程基础,无计算机基础)的开发之路 辅助知识1 with...as
这个语法是用来代替传统的try...finally语法的. with EXPRESSION [ as VARIABLE] WITH-BLOCK 基本思想是with所求值的对象必须有一个__enter_ ...