教我徒弟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文件,还有里面许多控件甚至编程思想 ...
随机推荐
- Yii2之类自动加载
在yii中,程序中需要使用到的类无需事先加载其类文件,在使用的时候才自动定位类文件位置并加载之,这么高效的运行方式得益于yii的类自动加载机制. Yii的类自动加载实际上使用的是PHP的类自动加载,所 ...
- LeetCode 277. Find the Celebrity (找到明星)$
Suppose you are at a party with n people (labeled from 0 to n - 1) and among them, there may exist o ...
- 【20171027中】alert(1) to win 第13,14,15,16题
第13题 题目: function escape(s) { var tag = document.createElement('iframe'); // For this one, you get t ...
- javascript的一些算法的实用小技巧
一.交换两个数字的值 我们交换两个数字的值想到的方法一般就是用一个新的变变量,让他把一个数存起来,然后在交换两个数字的值,看下面这种. var a = 1, b = 2; //交换两个数字的值 var ...
- Appium python自动化测试系列之页面滑动原理讲解(十)
10.1.1 页面滑动原理分析 在页面滑动查找章节我们就讲了滑动的知识点,只是不知道大家是否有认真练习以及去理解,如果你认真练习.理解了那么我相信这一章节的东西不用看也能够完成,下面我们还是简单分析一 ...
- 《Web前端开发修炼之道》-读书笔记CSS部分
如何组织CSS-分层 应用 css 的能力分两部分:一部分是css的API,重点是如何用css控制页面内元素的样式:另一部分是css框架,重点是如何对 css 进行组织.如何组织 css 可以有多种角 ...
- 微信小程序之bindtap事件绑定传参
wxml代码: <view class='fen'> <text bindtap='prev' data-page="{{pageDang}}">上一页&l ...
- css中单位px和em,rem的区别[转载]
PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位: 3. Firefox能够调整px和em,rem,但是96%以上 ...
- Linux系列教程(十七)——Linux权限管理之文件系统系统属性chattr权限和sudo命令
上篇博客我们介绍了权限管理的ACL权限,通过设定 ACL 权限,我们为某个用户指定某个文件的特定权限.这篇博客我们将介绍权限管理中用的比较多的两个命令 chattr 和 sudo . 1.设定文件系统 ...
- 北京地铁换乘算法(二维坐标系,图的深度搜索)开源下载Android源码、性能最优解
距离2012年11月2日下午2:05:31 已经过去158751270这么多秒了,不小心暴露了我的当前时间. java代码贴出来. private static long gettimelong() ...