前言:

这个系列的教程是为我徒弟准备的,也适合还不懂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. 使用EF操作Mysql数据库中文变问号的解决方案

    问题场景:使用Entity Framework 6.0 操作Mysql数据库,中文保存至数据库后全部变成问号.但是使用Mysql API却不会. 原因排查:首先想到的肯定是数据库编码问题,一次查询了表 ...

  2. Java多线程编程核心技术

    Java多线程编程核心技术 这本书有利于对Java多线程API的理解,但不容易从中总结规律. JDK文档 1. Thread类 部分源码: public class Thread implements ...

  3. LeetCode 238. Product of Array Except Self (去除自己的数组之积)

    Given an array of n integers where n > 1, nums, return an array output such that output[i] is equ ...

  4. c#public、private、protected、internal、protected internal修饰符及访问权限

    c#public.private.protected.internal.protected internal修饰符及访问权限 public 公有访问.不受任何限制. private 私有访问.只限于本 ...

  5. Ubuntu下OpenGL开发环境的搭建

    由于上了计算机图形学的课,老师叫我们安装OpenGL开发环境,晚上安装了一两个小时,终于搞定了. 1.      建立基本编译环境 sudo apt-get install build-essenti ...

  6. android版火狐调试器

    Remotely debugging Firefox for Android 使用火狐开发工具可以在桌面上进行远程代码的调试(FF26以上) 具体使用参考: https://developer.moz ...

  7. js 添加事件 attachEvent 和 addEventListener 的区别

    1.addEventListener 适用w3c标准方法addEventListener绑定事件,如下,事件的执行顺序和绑定顺序一致,执行顺序为method1->method2->meth ...

  8. javascript 备忘 细节 相关

    DOMContentLoaded事件触发时机,即dom tree完成但页面未必渲染完毕.   var a = [1,2,3,4]; var length = a.length; alert((leng ...

  9. Number 类型

    Javascript使用IEEE -754格式存储整型和浮点型(有些语言称为双精度) 因为这种存储格式,所以javascript中有正的0和负的0   整型也可以存储八进制和十六制   八进制第一个数 ...

  10. 新增加的HTTP状态码 -- 103

    IETF公布了新的HTTP状态码-103, 总结一下就是提前预加载(css.js)文档,提升用户的访问速度. Summary: a new status code that lets the serv ...