android自动代码怎么写

1.如何做 android studio 自动生成代码插件

1.介绍 在使用Android Studio开发的时候,大部分人都会使用一些插件来提高开发效率,比如:ButterKnife 自动生成注解代码 PermissionsDispatcher 更方便的进行Android 6.0权限处理 像这样的插件还有很多很多,但我们不能一直停留在用的程度,这样太不符合程序猿的风格了,今天就让我们自己动手来写一个插件,当以后自己有好的想法的时候,也能写一个出色的插件给大家使用。

想到以前写系统原生dialog的时候还要写一大串代码,简直太麻烦,今天就用这个做例子,写一个插件来实现一键生成dialog代码。注:本文只是为了熟悉Android Studio插件开发,所以用一个比较简单的例子来演示。

2.环境搭建 首先需要安装IntelliJ IDEA 安装完成后,运行起来是这个样子的:IntelliJ IDEA 点击Create New Project新建一个Plugin项目,填写项目名称,选择位置就可以点击finish了。New Project 项目结构如下图所示:项目结构 src目录下建包,和平时使用Android Studio的方式是一样的。

到这里,环境就搭建成功了(^-^)V3.编写插件 新建Action 在新建的包下建一个Action类 New Action 然后填写一些信息 填写信息 ActionID:Action唯一的ID,一般的格式为:pluginName.ID ClassName:类名 Name:插件最终显示在菜单上的名称 Description:对这个Action的描述信息 然后往下,选择插件在菜单中的位置,这里选择的是Code菜单下第一的位置,然后定义一个快捷键。点击OK,就创建了一个Action类了,public class CreateDialogAction extends BaseGenerateAction { public CreateDialogAction() { super(null); } public CreateDialogAction( handler) { super(handler); } @Override public void actionPerformed(AnActionEvent e) { } } 注意把继承的AnAction改成BaseGenerateAction,下文需要用到BaseGenerateAction类中的相关方法。

代码实现 主要实现在类中自动生成代码,首先获取相关的操作类,已在代码中加入注释说明。public class CreateDialogAction extends BaseGenerateAction { public CreateDialogAction() { super(null); } public CreateDialogAction( handler) { super(handler); } @Override public void actionPerformed(AnActionEvent e) {// 获取编辑器中的文件 Project project = e.getData(PlatformDataKeys.PROJECT); Editor editor = e.getData(PlatformDataKeys.EDITOR); PsiFile file = PsiUtilBase.getPsiFileInEditor(editor, project);// 获取当前类 PsiClass targetClass = getTargetClass(editor, file);// 获取元素操作的工厂类 PsiElementFactory factory = JavaPsiFacade.getElementFactory(project);// 生成代码 new LayoutCreator(project, targetClass, factory, file).execute(); } } 生成代码,需要继承WriteCommandAction.Simple类,在run方法中写生成代码的逻辑,将生成dialog的代码存入StringBuilder,然后调用targetClass类中的add方法生成代码,最后再导入需要的类。

public class LayoutCreator extends WriteCommandAction.Simple { private Project project; private PsiFile file; private PsiClass targetClass; private PsiElementFactory factory; public LayoutCreator(Project project, PsiClass targetClass, PsiElementFactory factory, PsiFile。 files) { super(project, files); this.project = project; this.file = files[0]; this.targetClass = targetClass; this.factory = factory; } @Override protected void run() throws Throwable {// 将弹出dialog的方法写在StringBuilder里 StringBuilder dialog = new StringBuilder(); dialog.append("public void showDialog(){"); dialog.append("android.support.v7.app.AlertDialog.Builder builder = new AlertDialog.Builder(this);"); dialog.append("builder.setTitle(\"Title\")\n"); dialog.append(".setMessage(\"Dialog content\")\n"); dialog.append(".setPositiveButton(\"OK\", new android.content.DialogInterface.OnClickListener() {\n" +"@Override\n" +"public void onClick(DialogInterface dialog, int which) {\n" +"\t\n" +"}" +"})\n"); dialog.append(".setNegativeButton(\"Cancel\", new DialogInterface.OnClickListener() {\n" +"@Override\n" +"public void onClick(DialogInterface dialog, int which) {\n" +"\t\n" +"}" +"})\n"); dialog.append(".show();"); dialog.append("}");// 将代码添加到当前类里 targetClass.add(factory.createMethodFromText(dialog.toString(), targetClass));// 导入需要的类 JavaCodeStyleManager styleManager = JavaCodeStyleManager.getInstance(project); styleManager.optimizeImports(file); styleManager.(targetClass); } } 点击编译器右上角的绿色Run按钮,会重新启动一个新的IntelliJ IDEA的界面,在这里创建一个Android工程,点击Code,会看到Android Dialog选项,看下效果:Android Dialog OK,到这里我们就成功的创建了一个插件,下面让我们来看看如何来部署插件。

4.部署插件 填写相关信息 打开项目中的plugin.xml文件,填写相关的信息,这些信息会展示在插件库中,如下。

2.android studio 怎么写代码

您好,Android Studio每次更新版本都会更新Gradle这个插件,但由于长城的问题每次更新都是失败,又是停止在Refreshing Gradle

Project ,有时新建项目的时候报 Gradle Project Compile Error 等等相关的问题

解决这些问题办法是

首先打开android studio项目 找到项目目录gradle\wrapper\gradle-wrapper.properties这个文件

内容如下

#Wed Apr 10 15:27:10 PDT

2013

distributionBase=GRADLE_USER_HOME

distributionPath=wrapper/dists

zipStoreBase=GRADLE_USER_HOME

zipStorePath=wrapper/dists

distributionUrl=.example.admin.myapplication.HaolvTest.setUp(HaolvTest.java:18) at junit.framework.TestCase.runBare(TestCase.java:139) 。

Process finished with exit code -1123456789123456789 然后简单搜索了一下,也没发现什么有价值的答案,后来直接看了原来默认的ExampleUnitTest的编写方式,发现它并没有继承自AndroidTestCase,而是直接在方法上加了一个Test注解,然后我也把我的测试用例代码改成这样,果然可以测试通过,然后添加了一个已知的错误来测试,如下:@Test public void testAddAct(){ assertEquals(0, AppManager.getInstance().actSize()); SplashActivity splashActivity = new SplashActivity(); AppManager.getInstance().addActivity(splashActivity); assertEquals(1, AppManager.getInstance().actSize()); AppManager.getInstance().addActivity(splashActivity); assertEquals(1, AppManager.getInstance().actSize()); }123456789123456789 这个时候执行的结果是错误的,如下:Expected :1 Actual :2 at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.failNotEquals(Assert.java:834) at org.junit.Assert.assertEquals(Assert.java:645) at org.junit.Assert.assertEquals(Assert.java:631) at com.example.admin.myapplication.HaolvTest.testAddAct(HaolvTest.java:25) at sun.reflect..invoke0(Native Method) 。

.. 可以看到期望是1,实际值是2,所以可以测试出addActivity这个方法还需要优化。总结:在AS环境下,写测试用例更方便了,啥都不用准备了,直接在ExampleUnitTest写个方法@Test就行,方法内容主要就是通过assertEquals去判断等,后面再细细研究,这里先开个头,做个准备工作。

(以上部分文字和代码参考《第一行代码》13.5小节) 在新建一个Android Project后,会发现在在src目录下有三个子目录,分别是androidTest、main、test目录,搜索了一下,得知androidTest目录是Android Instrumentation Tests的文件夹(Instrumentation :模拟、使用仪器),test目录是Unit Tests的文件夹。

看来要进行真正的Android测试,应该是在androidTest目录下编写测试用例。

android自动代码怎么写

转载请注明出处育才学习网 » android自动代码怎么写

知识

access登录代码怎么写

阅读(224)

本文主要为您介绍access登录代码怎么写,内容包括关于access登录窗口代码,access2007的登入窗体代码如何编写,关于access登录窗口代码。程序比较乱,说access登录窗口,但没有发现连接数据库的关键语句。很多不知道是控件还是其他,其实access登录

知识

原创性声明应该怎么写

阅读(738)

本文主要为您介绍原创性声明应该怎么写,内容包括研究生学位论文原创性声明怎么填写,要写一份原创声明文件,怎么写,研究生学位论文原创性声明怎么填写。本人郑重申明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文

知识

一床被子用英语怎么写

阅读(278)

本文主要为您介绍一床被子用英语怎么写,内容包括一床被子用英文怎么说,一床被子用英语怎么说,一床被子用英语怎么说。一床被子的英文:a quiltquilt 读法 英 [kwɪlt] 美 [kwɪlt] n.加衬芯床罩短语:quilt cover 被套

知识

躺的英文单词怎么写

阅读(271)

本文主要为您介绍躺的英文单词怎么写,内容包括躺英文怎么写,躺英文怎么写,躺的英语翻译躺用英语怎么说。躺的英文是lie。读音: [laɪ] 二、意思是躺下、躺。三、例句If you feel unwell,go and lie down。

知识

说话声用英语怎么写

阅读(241)

本文主要为您介绍说话声用英语怎么写,内容包括说话用英语怎么说,“声音”用英语怎么写,谢谢,说话用英语怎么说。1. speak speak vi.说话;发言speaker n.说话者;扬声器2. speech speech 演说;讲演;说话;言论

知识

双人旁的拼音怎么写

阅读(237)

本文主要为您介绍双人旁的拼音怎么写,内容包括双人旁的字带拼音,双人旁用拼音怎么打只要那个偏旁,带拼音的双人旁的字。经查字典没有这个字,双人旁的字不多,主要有以下几个:衍,彳 笔画3彴 彶 彵 笔画4彺 彷 彸 彻 役 笔画5彽 佛 徃 徂 径 彼 往

知识

情人节快乐法文怎么写

阅读(389)

本文主要为您介绍情人节快乐法文怎么写,内容包括情人节快乐用法语怎么说,我爱你,就如你所感受的一样.亲爱的,情人节快乐法文怎么写搜狗,请问法语中情人节快乐怎么说~。祝你情人节快乐一般就说:happy valentines day!(情人节快乐)--这句话太流行

知识

c语言循环语句怎么写

阅读(230)

本文主要为您介绍c语言循环语句怎么写,内容包括C语言循环语句用法,C语言中的循环语句怎么写啊,C语言中循环语句循环语句怎么写怎么设定。原发布者:西伯利亚小774三种基本的循环语句:for语句、while语句和do-while语句。循环语句(一)、for循环它

知识

c中定义抽象类怎么写

阅读(222)

本文主要为您介绍c中定义抽象类怎么写,内容包括C++中抽象类的定义,c#中定义一个抽象类,里边有两个虚方法,虚函数,分别求周长和面,用C++编写抽象类的问题。定义:在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样

知识

emailaddress怎么写

阅读(287)

本文主要为您介绍emailaddress怎么写,内容包括电子邮件地址怎么写,email地址怎么写,正确的Email地址的格式是什么。如果不明白电子邮件地址怎么写,可参考以下标准的电子邮箱格式:电子邮箱格式通常以类似guangjia@mail.com出现,前面的guan

知识

三年级成绩分析怎么写

阅读(275)

本文主要为您介绍三年级成绩分析怎么写,内容包括小学三年级语文试卷分析怎么写,三年级卷面分析怎么写,成绩分析怎么写。试卷结构本学期三年级语文试卷,考试时间为90分钟,卷面分值为100分。由五大块组成,第一部分为珍珠落玉盘;第二部分为滴水回

知识

数理化建模论文怎么写

阅读(229)

本文主要为您介绍数理化建模论文怎么写,内容包括物理建模论文怎么写,数学建模论文范文怎么写我是一高中生参加了那个数理化大赛要交一篇,数学建模论文范文怎么写。仔细看看吧,希望对你有帮助物理建模论文格式(一)论文形式:科学论文科学论文是对

知识

cusion音标怎么写

阅读(242)

本文主要为您介绍cusion音标怎么写,内容包括问一个关于音标的问题A,E,I,O,U,请用这9个音标组十词[急]E[i:][e]I[ai][i]O[əu][ɔ:][ɔ]U[ju:],音标卡怎么做。a: for /ei/: base,case, change,game, label; for /

知识

c语言递归算法怎么写

阅读(215)

本文主要为您介绍c语言递归算法怎么写,内容包括c语言递归算法,C语言1加到N的递归算法怎么写,C语言递归算法是怎么执行的。利用递归算法求5!。 1.程序分析:递归公式:fn=fn_1*4!2.程序源代码:#include "stdio.h"main(){in

知识

access登录代码怎么写

阅读(224)

本文主要为您介绍access登录代码怎么写,内容包括关于access登录窗口代码,access2007的登入窗体代码如何编写,关于access登录窗口代码。程序比较乱,说access登录窗口,但没有发现连接数据库的关键语句。很多不知道是控件还是其他,其实access登录

知识

divcss里文字上下滚动的代码怎么写

阅读(275)

本文主要为您介绍divcss里文字上下滚动的代码怎么写,内容包括div中的文字滚动效果的代码怎么写,不要jsp的,就直接用属性或者更,div中有一行文字,怎么实现部分文字上下滚动效果,html中上下滚动的文字代码,举例。<HTML> <HEAD> <META http-eq

知识

css初始化代码怎么写

阅读(227)

本文主要为您介绍css初始化代码怎么写,内容包括CSS初始化的代码怎么写,CSS初始化的代码怎么写,css初始化代码怎么用。1. 最耗资源的,最简单的* { padding: 0; margin: 0; border: 0; } 2. 选择性初始化举例(综合)

知识

java代码目录结构怎么写

阅读(231)

本文主要为您介绍java代码目录结构怎么写,内容包括使用java读取指定路径的目录结构;帮我把具体的代码,例子写出来,,java项目代码结构说明书怎么写,Java实现的多层目录结构呢。Node:目录节点,具备节点属性信息 NodeStore:平面目录节点持久化接口

知识

js网页跳转代码怎么写

阅读(238)

本文主要为您介绍js网页跳转代码怎么写,内容包括js跳转代码怎么写,js网页跳转的代码,JS代码怎么跳转到另一个页面呢。javascript常用的页面跳转方法为:window.location.href = some_url;下面举例演示点击按钮后,延迟3

知识

dw如何获取代码怎么写

阅读(235)

本文主要为您介绍dw如何获取代码怎么写,内容包括如何用DW获取网页上需要的html代码,如何用dw获取网页上需要的html代码,用dw编写代码如何查看。JS代码如下:<script language="javascript">var mydate = new Date();var myy

知识

android怎么写分线程

阅读(229)

本文主要为您介绍android怎么写分线程,内容包括android怎么样写一个线程类,Android主线程如何向分线程发送消息,android中怎么区分UI主线程和子线程。因为你是在主线程创建的handler实例,比如你是这样实例化handler 那么我们进到handler源

知识

android中带jni的mk文件怎么写

阅读(190)

本文主要为您介绍android中带jni的mk文件怎么写,内容包括在使用AndroidNDK开发时,jni目录下的Android.mk是如何被调用的,android.mk文件怎么写,android.mk怎么在jni编译时把系统头文件包含。一个Android.mk file用来向编译系统描述你的源代

[/e:loop]