android studio 菜鸟实战项目 之 点击事件以及动态添加

原始界面:               登陆失败:             登陆成功:              动态添加控件:

布局如下:(特别声明最后又一个空linearlayout,这是为了后面的动态添加事件)

<?xml version="1.0" encoding="utf-8"?><LinearLayout 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"    android:orientation="vertical"    android:background="@color/chongse"    android:padding="0dp"    tools:context="com.example.administrator.pro2_1.MainActivity">    <TextView        android:layout_marginTop="5dp"        android:textSize="40sp"        android:id="@+id/text1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/text1" />

    <EditText        android:layout_marginLeft="10dp"        android:textSize="30sp"        android:layout_marginTop="10dp"        android:id="@+id/et1"        android:hint="@string/hint1"        android:layout_width="match_parent"        android:layout_height="wrap_content"    />    <EditText        android:layout_marginLeft="10dp"        android:textSize="30sp"        android:layout_marginTop="10dp"        android:id="@+id/et2"        android:hint="@string/hint2"        android:layout_width="match_parent"        android:layout_height="wrap_content"        />    <ImageButton        android:id="@+id/img1"        android:src="@drawable/state1"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <Button        android:id="@+id/bt"        android:text="@string/bt"        android:layout_marginLeft="10dp"        android:layout_width="80dp"        android:layout_height="50dp" />    <LinearLayout        android:orientation="vertical" android:layout_width="match_parent"        android:id="@+id/add"        android:layout_height="match_parent">    </LinearLayout></LinearLayout>

实现监听事件:
package com.example.administrator.pro2_1;

import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageButton;import android.widget.LinearLayout;import android.widget.TextView;public class MainActivity extends AppCompatActivity{    //定义一系列变量    private EditText et1;    private EditText et2;    private ImageButton img_bt;    private Button button;    private TextView add;    LinearLayout linearLayout;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //实例化控件        initView();        /*  分别实现三个监听事件:            1.按下图片按钮,如果用户名和密码正确,那么登陆成功,隐藏两个editview按钮            2.按下重置按钮,清空editview的内容            3.长按图片按钮,实现动态添加一个textview         */        img_bt.setOnClickListener(new ImageOnClickListener());        button.setOnClickListener(new ButtonOnclickListener());        img_bt.setOnLongClickListener(new LongTimeOnclickListener());    }

    private void initView(){        et1=(EditText)findViewById(R.id.et1);        et2=(EditText)findViewById(R.id.et2);        img_bt=(ImageButton)findViewById(R.id.img1);        button=(Button)findViewById(R.id.bt);        linearLayout=(LinearLayout)findViewById(R.id.add);    }

    class ImageOnClickListener implements View.OnClickListener{        @Override        public void onClick(View v){            //获取数据            String str1,str2;            String user=getResources().getString(R.string.user);            String psw=getResources().getString(R.string.psw);            String error=getResources().getString(R.string.error);            str1=et1.getText().toString();            str2=et2.getText().toString();            //当用户名栏位空时,将焦点放在用户名栏,并直接返回,密码栏同理            if(str1.equals("")){                et1.requestFocus();                return;            }else if(str2.equals("")){                et2.requestFocus();                return;            }            //都完成输入后,判断用户名和密码是否正确            if(str1.equals(user)&&str2.equals(psw)){                //正确的话,隐藏两个控件,并更换图片                et1.setVisibility(View.GONE);                et2.setVisibility(View.GONE);                img_bt.setImageDrawable(getResources().getDrawable(R.drawable.state2));            }else{                //错误的话,清空密码栏,并添加错误提示                et2.requestFocus();                et2.setText("");                et2.setHint(error);            }        }    }

    class ButtonOnclickListener implements View.OnClickListener{        @Override        public void onClick(View v){            String str=getResources().getString(R.string.hint1);            et1.setText("");            et2.setText("");            et2.setHint(str);            et1.requestFocus();        }    }

    class LongTimeOnclickListener implements View.OnLongClickListener{        @Override        public boolean onLongClick(View v){            String str=getResources().getString(R.string.add_text);            //在mainactivity中定义一个textview            add=new TextView(MainActivity.this);            add.setText(str);            add.setTextSize(25);            //添加到之前布置为空的linearlayout按钮中            linearLayout.addView(add);            return true;        }    }

}
时间: 2024-11-05 11:29:04

android studio 菜鸟实战项目 之 点击事件以及动态添加的相关文章

android studio 菜鸟实战项目 之 spnner实现

1.简单实现效果图: activity_main.xml文件: <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" /><Spinner android:id="@+id/spinner" android:layout_width="wrap

Android Studio开发基础之对点击事件和初始化控件进行封装

public class MainActivity extends Activity implements View.OnClickListener { private TextView Txt; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity

《Android Studio开发实战 从零基础到App上线》资源下载和内容勘误

http://blog.csdn.net/aqi00/article/details/72907534 http://blog.csdn.net/aqi00/article/details/73065392 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 资源下载 下面是<Android Studio开发实战 从零基础到App上线>一书用到的工具和代码资源:1.本书使用的Android Studio版本为2.2.3,因为Android官网现在不提供该版本的下载,所以博主

在Android Studio中创建项目和模拟器

北京电子科技学院 实      验      报      告 课程:移动平台应用开发实践  班级:201592  姓名:杨凤  学号:20159213 成绩:___________  指导老师:娄嘉鹏   实验日期 :2015.11.1 实验名称:           在Android Studio中创建项目和模拟器 实验内容:       1.在Android Studio中创建项目 2.创建并启动Android模拟器 一.实验简介 熟悉Android的开发环境.一些基本的操作技巧以及调试技

Android studio多个项目之间怎么实现快速切换?

Android studio多个项目之间怎么实现快速切换?Android studio中打开的项目太多了,想切换到一个项目很麻烦,怎么才能快速切换到另一个项目中呢?请看下文详细介绍 在对Android studio中进行对项目中的开发Android上的代码,那么一个当中进行对项目上的开发,那么在就会打开多个项目对项目中进行对其的开发,当当对一个项目上的开发,根据自己的要求的话,那么切换到另一个项目的开发. 1.在当前的电脑的界面中,进行打开了两个的Android studio窗口. 2.在当前的

Android Studio导入Eclipse项目和一些常见的问题

Android Studio版本 Eclipse项目工程:一个主工程,一个Emojicon依赖库. 有两种方式导入Eclipse工程: 1.兼容Eclipse 2.全新的Android Gradle Project Google推荐用全新的方式,所以此处不介绍兼容模式导入. 请先关闭Android Studio当前的Project,否则你看不到Import Project. 选择“Import project(Eclipse ADT, Gradle, etc.)”,定位到你所需要导入的工程的主目

Android studio导入eclipse项目且不改变目录结构

Android studio的安装与配置论坛当中已经有很多在此就不在细说了,现在开始说下如何在Android studio当中导入eclipse的项目且不改变其目录结构和配置,让使用eclipse的同学也可以继续使用,当然使用android studio的同学也可以使用.废话少说上图 1. 使用open的方式打开一个已经存在的android项目(eclipse创建的) 2. 在项目属性当中配置sdk版本和output路径 3. 第三步很重要分为9个步骤,主要操作是先删除第一次打开项目的时候导入的

Android studio中为项目添加模块依赖的过程

https://blog.csdn.net/cheng__lu/article/details/74574582 Android studio中为项目添加模块依赖的过程 1.点击菜单file>project structure或者点击工具栏中倒数第三个图标project structure. 2.打开project structure后,在modules中选中一个项目,点击“Dependencies”窗口后,进行点击添加按钮“+”,再点击Module dependency 3.选择”mylibr

导入开源库到基于Android Studio构建的项目中

前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不知道怎么导入到自己的基于Android Studio项目中来,微博上也有人私信我,让我来写写,正好今天回来的比较早,就写写吧.主要介绍一下常见的一些导包的场景. 前言 --project //项目目录 | build.gradle //项目的gradle配置文件 | settings.gradle