android studio格式,Android Studio中的文件模板(示例)

问题

我决定为fragment创建一个模板,但是,在哪里做?

首先,我在Android Studio中提取了IDE设置。我找到了列出各种模板的区域,我以为我找到了,我创建了一个名为"fragment lifecycle的新模板,并用所需的内容填充它,然后我应用了更改并关闭了窗口。

我右键点击我的fragments package> new> ......没有任何改变。事实证明,我创建的是一个通用的Java模板。我可以通过转到new但是,这显然并不理想,因为它没有挂钩到模板的Android区域。另外,对于需要布局资源的模板,我将来会做些什么?我想要做到这一点。

Android模板

在一些搜索之后,我发现在Android Studio中使用的Android模板并不特定用在Android Studio ,事实上,他们甚至都不是IntelliJ ,相反,这些模板是hook的,并且基于一个叫做FreeMarker的系统,这是在Eclipse中使用ADT插件提供模板的模板技术。

Android模板位置

你可以在以下位置找到所有Android Studio android模板:

ANDROID_STUDIO_DIR/plugins/android/lib/templates

Android模板结构&格式

你可以在这里了解如何对模板进行结构和格式设置:

Android ADT模板格式文档

模板示例

我创建了一个名为"Lifecycle Fragment"的新模板,并将它放置在上面描述的路径,这些文件的内容如下所示,以了解模板的外观。

目录结构为:FragmentWithLifecycle

. /template.xml

. /recipe.xml.ftl

. /globals.xml.ftl

. /temlpate_blank_fragment.png

. /root/src/app_package/LifecycleFragment.java.ftl

. /root/res/layout/fragment_blank.xml.ftl

template.xml<?xml version= "1.0" ?>

format= "4"

revision= "1"

name= "New Fragment With Lifecycle"

minApi= "7"

minBuildApi= "8"

description= "Creates a new fragment, with hooks for the entire fragment lifecycle and a static initializer.">

id= "className"

name= "Fragment Name"

type= "string"

constraints= "class|unique|nonempty"

default= "MyFragment"

help= "The name of the fragment class to create" />

id= "includeLayout"

name= "Create layout XML?"

type= "boolean"

default= "true"

help= "Generate a layout XML for the fragment" />

template_blank_fragment.png

recipe.xml.ftl<?xml version= "1.0" ?>

to= "${escapeXmlAttribute(resOut)}/layout/fragment_${classToResource(className)}.xml" />

#if>

to= "${escapeXmlAttribute(srcOut)}/${className}.java" />

globals.xml.ftl<?xml version= "1.0" ?>

template_ blank _fragment.png

从预先存在的空白fragment模板目录中复制。

root/src/app_package/LifecycleFragment.java.ftlpackage ${packageName};

import android.support.v7.app.ActionBarActivityandroid.app.Activity#if>;

import android.support.v4.#if>app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

public class ${className} extends Fragment {

//public static final String arg_param1 = "SOMETHING" ;

public static ${className} newInstance()

{

${className} frag = new ${className}();

//Get arguments pass in, if any

Bundle args = frag.getArguments();

if(args == null)

{

args = new Bundle();

}

//Add parameters to the arguments bundle

//args.putInt(SOME_KEY, someValue);

frag.setArguments(args);

return frag;

}

public ${className}()

{

//TODO

}

//------- Start Fragment Lifecycle -----------

@Override

public void onAttach(Activity activity)

{

super.onAttach(activity);

}

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)

{

//Inflate the layout for this fragment

return inflater.inflate(R.layout.fragment_${classToResource(className)}, container, false);

return super.onCreateView(inflater, container, savedInstanceState);

#if>

}

@Override

public void onActivityCreated(Bundle savedInstanceState)

{

super.onActivityCreated(savedInstanceState);

}

@Override

public void onStart()

{

super.onStart();

}

@Override

public void onResume()

{

super.onResume();

}

@Override

public void onPause()

{

super.onPause();

}

@Override

public void onStop()

{

super.onStop();

}

@Override

public void onDestroyView()

{

super.onDestroyView();

}

@Override

public void onDestroy()

{

super.onDestroy();

}

@Override

public void onDetach()

{

super.onDetach();

}

//------- End Fragment Lifecycle -------------

}

root/res/layout/fragment_blank.xml.ftl

android:layout_width= "wrap_content"

android:layout_height= "wrap_content"

android:orientation= "vertical"

>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值