前言:

这个系列的教程是为我徒弟准备的,也适合还不懂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开发入门(一)的更多相关文章

  1. 教我徒弟Android开发入门(二)

    前言: 上一期实现了简单的QQ登录效果,这一期继续对上一期进行扩展 本期的知识点: Toast弹窗,三种方法实现按钮的点击事件监听 正文:   Toast弹窗其实很简单,在Android Studio ...

  2. 教我徒弟Android开发入门(四)

    本期知识点: 两大常用布局的简单介绍 在我们的APP使用第三方库 Android Studio常用快捷键 一.两大常用布局 1.LinearLayout线性布局 线性布局,可以垂直显示或者水平显示,设 ...

  3. 教我徒弟Android开发入门(三)

    前言: 老实说,我有点不知道该讲什么了,希望看过的人能给我提提意见,感激不尽. 本期知识点: 长按事件,log的简单使用,双击退出程序功能的实现 正文: 上一期我们了解到点击事件其实就是让控件绑定一个 ...

  4. Android开发入门

    教我徒弟Android开发入门(一) 教我徒弟Android开发入门(二) 教我徒弟Android开发入门(三) 出处:http://www.cnblogs.com/kexing/tag/Androi ...

  5. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解

    原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...

  6. [译]:Xamarin.Android开发入门——Hello,Android深入理解

    返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...

  7. [译]:Xamarin.Android开发入门——Hello,Android快速上手

    返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...

  8. Android开发入门经典【申明:来源于网络】

    Android开发入门经典[申明:来源于网络] 地址:http://wenku.baidu.com/view/6e7634050740be1e650e9a7b.html?re=view

  9. Android开发入门要点记录:四大组件

    cocos2dx跨平台开发中需要了解android开发,昨天快速的浏览了一本Android开发入门教程,因为之前也似懂非懂的写过Activity,Intent,XML文件,还有里面许多控件甚至编程思想 ...

随机推荐

  1. PHP获取文件扩展名的五种方式

    这是我应聘实习时遇到的一道笔试题: 使用五种以上方式获取一个文件的扩展名. 要求:dir/upload.image.jpg,找出 .jpg 或者 jpg , 必须使用PHP自带的处理函数进行处理,方法 ...

  2. Linux下如何高效删除一个几十G的文本文件的最后一行或几行

    当我们在服务器端记录日志或文本数据时,有时候会有需要删除一个大文件的最后几行,这时如何才能高效实现. 上网浏览终于找到dd命令,亲测如下,删除一个32GB的日志文件最后100行仅需要4分钟 [root ...

  3. 快速部署MongoDB

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.本文安装的版本为3.0,其他版本可对照. 设置mongodb repo vi /e ...

  4. IIS 服务无法在此时接受控制信息

    应用程序池无法重新启动,报错:服务无法在此时接受控制信息 解决方法:重启 Credential Manager服务即可

  5. 通过对DAO层的封装减少数据库操作的代码量

     在学框架之前,写项目时总是要花大量的时间去写数据库操作层代码,这样会大大降低我们的效率,为了解决这个问题,我花了两天时间利用反射机制和泛型将DAO层进行了封装,这样我们只需要写sql语句,不需要再写 ...

  6. Problem O

    Problem Description Before bridges were common, ferries were used to transport cars across rivers. R ...

  7. lvs学习笔记

    本人身为一个网工,最近一直在工作中学习linux的相关知识.前短时间通过自查资料学习了lvs的相关内容,摘录部分整理后和大家分享,内容较多,较琐碎,望见谅!!! LVS 从Linux内核版本2.6起, ...

  8. [C#]使用Costura.Fody将源DLL合并到目标EXE

    本文为原创文章,如转载,请在网页明显位置标明原文名称.作者及网址,谢谢! 一.本文主要是使用Costura.Fody工具将源DLL合并到目标EXE,因此,需要从以下任一链接下载: ①从Github地址 ...

  9. React 和 Angular 各有什么优缺点,各自又适合什么开发场景?

    最近正在学习React,便谈一点自己的浅见. Angular.js首先Angular的背后是Google,所以社区基础是不用担心的,整个生态也已经是非常的完整了,从最基本的Tutorial到Stack ...

  10. SSM框架搭建(Spring+SpringMVC+MyBatis)与easyui集成并实现增删改查实现

    一.用myEclipse初始化Web项目 新建一个web project: 二.创建包 controller        //控制类 service //服务接口 service.impl //服务 ...