在这篇文章中,我们将带领您了解使用Android发布XML文件的全貌,包括安卓开发xml的相关情况。同时,我们还将为您介绍有关AndroidStudio中的AndroidManifest.xml文件分
在这篇文章中,我们将带领您了解使用Android发布XML文件的全貌,包括安卓开发xml的相关情况。同时,我们还将为您介绍有关Android Studio中的AndroidManifest.xml文件分析、Android studio如何新建Android xml文件?、Android XML文件中android:id,android:name和name标签之间的区别、android xml文件应用的知识,以帮助您更好地理解这个主题。
本文目录一览:- 使用Android发布XML文件(安卓开发xml)
- Android Studio中的AndroidManifest.xml文件分析
- Android studio如何新建Android xml文件?
- Android XML文件中android:id,android:name和name标签之间的区别
- android xml文件应用
使用Android发布XML文件(安卓开发xml)
编辑:
我正在尝试发送一个XML文件作为Android的发布请求。
服务器接受text / xml。 我试着创build一个multipartentity,它有一个multipart / form-data的内容types。
HttpClient httpClient = new DefaultHttpClient(); /* New Post Request */ HttpPost postRequest = new HttpPost(url); byte[] data = IoUtils.toByteArray(payload); /* Body of the Request */ InputStreamBody isb = new InputStreamBody(new ByteArrayInputStream(data),"uploadedFile"); multipartentity multipartContent = new multipartentity(); multipartContent.addPart("uploadedFile",isb); /* Set the Body of the Request */ postRequest.setEntity(multipartContent); /* Set Authorization Header */ postRequest.setHeader("Authorization",authHeader); HttpResponse response = httpClient.execute(postRequest); InputStream content = response.getEntity().getContent(); return content;
但是,我收到一个错误,说内容types不能被使用。
Libgdx无法加载目标Linux 32位共享库gdx freetype,我该如何解决?
使用Python-For-Android将Python脚本导出到Android可执行文件(.apk)
在Android SDK中设置JAVA_HOME
没有findAndroid库
Android的Linux内核信息/检查工具
The server refused this request because the request entity is in a format not supported by the requested resource for the requested method (Cannot consume content type).
如何更改请求的内容types?
编辑:
如何在Ubuntu上安装Android SDK?
软件更新选项不会出现在使用ubuntu的eclipse中
Android ndk r7,Windows上的ffmpeg
如何在QEMU中模拟TrustZone?
即使在Windows 8 Enterprise – Cordova上设置path,也无法运行JAVA
长话短说 – 为您的InputStreamBody使用另一个构造函数,让您指定您希望使用的MIME类型 。 如果您不这样做,那么多部分请求中的部分将不会有指定的Content-Type (详情见下文)。 因此,服务器不知道该文件是什么类型,在你的情况下可能会拒绝接受(我接受它,但我认为这是由配置驱动)。 如果这仍然不起作用,您可能有一个服务器端问题。
注意:将请求本身的Content-Type改为除multipart/form-data; boundary=someBoundary任何内容multipart/form-data; boundary=someBoundary multipart/form-data; boundary=someBoundary呈现请求无效; 服务器将无法正确解析多部分。
长话长 – 这是我的发现。
给出以下代码:
byte[] data = "<someXml />".getBytes(); multipartContent.addPart("uploadedFile",new InputStreamBody(new ByteArrayInputStream(data),"text/xml","somefile.xml")); multipartContent.addPart("otherPart",new StringBody("bar","text/plain",Charset.forName("UTF-8"))); multipartContent.addPart("foo",new FileBody(new File("c:\foo.txt"),"text/plain"));
HttpClient发布以下有效负载(捕获w / Wireshark):
POST /upload.PHP HTTP/1.1 transfer-encoding: chunked Content-Type: multipart/form-data; boundary=SeXc6P2_uEGZz9jJG95v2FnK5a8ozU8KfbFYw3 Host: thehost.com Connection: Keep-Alive User-Agent: Apache-HttpClient/4.1-alpha2 (java 1.5) --SeXc6P2_uEGZz9jJG95v2FnK5a8ozU8KfbFYw3 Content-disposition: form-data; name="uploadedFile"; filename="someXml.xml" Content-Type: text/xml Content-transfer-encoding: binary <someXml /> --SeXc6P2_uEGZz9jJG95v2FnK5a8ozU8KfbFYw3 Content-disposition: form-data; name="otherPart" Content-Type: text/plain; charset=UTF-8 Content-transfer-encoding: 8bit yo --SeXc6P2_uEGZz9jJG95v2FnK5a8ozU8KfbFYw3 Content-disposition: form-data; name="foo"; filename="foo.txt" Content-Type: text/plain Content-transfer-encoding: binary Contents of foo.txt --SeXc6P2_uEGZz9jJG95v2FnK5a8ozU8KfbFYw3--
在服务器上,下面的PHP脚本:
<?PHP print_r($_FILES); print_r($_REQUEST);
吐出了以下内容:
Array ( [uploadedFile] => Array ( [name] => someXml.xml [type] => text/xml [tmp_name] => /tmp/PHP_uploads/PHPhONLo3 [error] => 0 [size] => 11 ) [foo] => Array ( [name] => foo.txt [type] => text/plain [tmp_name] => /tmp/PHP_uploads/PHP58DEpA [error] => 0 [size] => 21 ) ) Array ( [otherPart] => yo )
你可以用这种方式上传到服务器
HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); InputStreamEntity reqEntity = new InputStreamEntity(new FileInputStream(filePath),-1); reqEntity.setContentType("binary/octet-stream"); reqEntity.setChunked(true); // Send in multiple parts if needed httppost.setEntity(reqEntity); HttpResponse response = httpclient.execute(httppost);
我做了类似的访问web服务。 肥皂请求是一个XML请求。 请参阅下面的代码:
package abc.def.ghi; import java.io.IOException; import java.io.UnsupportedEncodingException; import org.apache.http.httpentity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.httpconnectionParams; import org.apache.http.params.HttpParams; import org.apache.http.params.HttpProtocolParams; import org.apache.http.util.EntityUtils; public class WebServiceRequestHandler { public static final int CONNECTION_TIMEOUT=10000; public static final int SOCKET_TIMEOUT=15000; public String callPostWebService(String url,String soapAction,String envelope) throws Exception { final DefaultHttpClient httpClient=new DefaultHttpClient(); HttpParams params = httpClient.getParams(); httpconnectionParams.setConnectionTimeout(params,CONNECTION_TIMEOUT); httpconnectionParams.setSoTimeout(params,SOCKET_TIMEOUT); HttpProtocolParams.setUseExpectContinue(httpClient.getParams(),true); // POST HttpPost httppost = new HttpPost(url); // add headers. set content type as XML httppost.setHeader("soapaction",soapAction); httppost.setHeader("Content-Type","text/xml; charset=utf-8"); String responseString=null; try { // the entity holds the request httpentity entity = new StringEntity(envelope); httppost.setEntity(entity); ResponseHandler<String> rh=new ResponseHandler<String>() { // invoked on response public String handleResponse(HttpResponse response) throws ClientProtocolException,IOException { httpentity entity = response.getEntity(); StringBuffer out = new StringBuffer(); // read the response as byte array byte[] b = EntityUtils.toByteArray(entity); // write the response byte array to a string buffer out.append(new String(b,b.length)); return out.toString(); } }; responseString=httpClient.execute(httppost,rh); } catch (UnsupportedEncodingException uee) { throw new Exception(uee); }catch (ClientProtocolException cpe){ throw new Exception(cpe); }catch (IOException ioe){ throw new Exception(ioe); }finally{ // close the connection httpClient.getConnectionManager().shutdown(); } return responseString; } }
使用你的代码,以下应该工作:
response.setContentType("Your MIME type");
无论API如何,内容类型都是通过一个标题与“Content-Type”键协商的:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
你无法控制服务的期望。 这是他们合同的一部分。 你可能正在发送''text / plain'',他们正在期待''multipart / form-data''(认为是html表单数据)的东西。
总结
以上是小编为你收集整理的使用Android发布XML文件全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
Android Studio中的AndroidManifest.xml文件分析
一、关于AndroidManifest.xml
AndroidManifest.xml清单文件是每个Android程序中必须的文件,它是整个Android程序的全局描述文件,除了能声明程序中的Activities,Content Providers,Services,和Intent Receivers,还能指定应用的名称、使用的图标、包含的组件以及permissions和instrumentation(安全控制和测试)。
二、Hello World工程中的清单文件分析
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.wgh.helloworld"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
各节点解释(顺序从上到下):
- xmlns:android:定义android命名空间,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。
- package:指定本应用内java主程序包的包名,它也是一个应用进程的默认名称。
- application:一个AndroidManifest.xml中必须含有一个Application标签,这个标签声明了每一个应用程序的组件及其属性(如icon、label、permission等)。
- allowBackup:当allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。
- icon:这个很简单,就是声明整个APP的图标,图片一般都放在drawable文件夹下。
- label:声明整个APP的名字,字符串常量一般都放在values文件夹下的strings.xml里。
- supportsRtl:支持从右往左显示的布局(正常布局在镜子里面看到的左右对调过的样子)。
- theme:是一个资源的风格,它定义了一个默认的主题风格给所有的activity,当然也可以在自己的theme里面去设置它,有点类似style。
- activity:定义APP中的一个组件Activity。
- name:该Activity的名字。
- intent-filter:广播过滤器,后续会讲到。
- <action android:name:指定程序入口Activity,在这里是MainActivity。
- <category android:name:指定当前动作(Action)被执行的环境。这里的CATEGORY_LAUNCHER决定应用程序是否显示在程序列表里。
- 其余的:对应于各个开始节点的结束节点。
三、通用的清单文件结构以及各个节点的详细介绍
通用清单文件结构:
<?xmlversion="1.0"encoding="utf-8"?> <manifest> <application> <activity> <intent-filter> <action/> <category/> </intent-filter> </activity> <activity-alias> <intent-filter></intent-filter> <Meta-data/> </activity-alias> <service> <intent-filter></intent-filter> <Meta-data/> </service> <receiver> <intent-filter></intent-filter> <Meta-data/> </receiver> <provider> <grant-uri-permission/> <Meta-data/> </provider> <uses-library/> </application> <uses-permission/> <permission/> <permission-tree/> <permission-group/> <instrumentation/> <uses-sdk/> <uses-configuration/> <uses-feature/> <supports-screens/> </manifest>
各个节点详细解释:
1、<Manifest>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.woody.test" android:sharedUserId="string" android:sharedUserLabel="string resource" android:versionCode="integer" android:versionName="string" android:installLocation=["auto" | "internalOnly" | "preferExternal"] > </manifest>
-
xmlns:android
定义android命名空间,一般为http://schemas.android.com/apk/res/android,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。
-
package
指定本应用内java主程序包的包名,它也是一个应用进程的默认名称。
-
sharedUserId
表明数据权限,因为默认情况下,Android给每个APK分配一个唯一的UserID,所以是默认禁止不同APK访问共享数据的。若要共享数据,第一可以采用SharePreference方法,第二种就可以采用sharedUserId了,将不同APK的sharedUserId都设为一样,则这些APK之间就可以互相共享数据了。
-
sharedUserLabel
一个共享的用户名,它只有在设置了sharedUserId属性的前提下才会有意义。
-
versionCode
是给设备程序识别版本(升级)用的,必须是一个interger值,代表app更新过多少次,比如第一版一般为1,之后若要更新版本就设置为2,3等等。
-
versionName
这个名称是给用户看的,你可以将你的APP版本号设置为1.1版,后续更新版本设置为1.2、2.0版本等等。
-
installLocation
安装参数,是Android2.2中的一个新特性,installLocation有三个值可以选择:internalOnly、auto、preferExternal
- 选择preferExternal
系统会优先考虑将APK安装到SD卡上(当然最终用户可以选择为内部ROM存储上,如果SD存储已满,也会安装到内部存储上)。 - 选择auto
系统将会根据存储空间自己去适应。 - 选择internalOnly
是指必须安装到内部才能运行。
注:需要进行后台类监控的APP最好安装在内部,而一些较大的游戏APP最好安装在SD卡上。默认为安装在内部,如果把APP安装在SD卡上,首先得设置level为8,并且要配置android:installLocation这个参数的属性为preferExternal
2、<Application>
<application android:allowClearUserData=["true" | "false"] android:allowTaskreparenting=["true" | "false"] android:backupAgent="string" android:debuggable=["true" | "false"] android:description="string resource" android:enabled=["true" | "false"] android:hasCode=["true" | "false"] android:icon="drawable resource" android:killAfterRestore=["true" | "false"] android:label="string resource" android:manageSpaceActivity="string" android:name="string" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:restoreAnyVersion=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" > </application>
-
android:allowClearUserData('true' or 'false')
用户是否能选择自行清除数据,默认为true,程序管理器包含一个选择允许用户清除数据,当为true时,用户可自己清理用户数据,反之亦然。
-
android:allowTaskreparenting('true' or 'false')
是否允许activity更换从属的任务,比如从短信息任务切换到浏览器任务。
-
android:backupAgent
这也是Android2.2中的一个新特性,设置该APP的备份,属性值应该是一个完整的类名,如com.project.TestCase,此属性并没有默认值,并且类名必须得指定(就是个备份工具,将数据备份到云端的操作)。
-
android:debuggable
这个从字面上就可以看出是什么作用的,当设置为true时,表明该APP在手机上可以被调试,默认为false,在false的情况下调试该APP,就会报以下错误:
Device XXX requires that applications explicitely declare themselves as debuggable in their manifest.
Application XXX does not have the attribute 'debuggable' set to TRUE in its manifest and cannot be debugged.
-
android:description / android:label
此两个属性都是为许可提供的,均为字符串资源,当用户去看许可列表(android:label)或者某个许可的详细信息(android:description)时,这些字符串资源就可以显示给用户。
label应当尽量简短,只需要告知用户该许可是在保护什么功能就行。而description可以用于具体描述获取该许可的程序可以做哪些事情,实际上让用户可以知道如果他们同意程序获取该权限的话,该程序可以做什么。我们通常用两句话来描述许可,第一句描述该许可,第二句警告用户如果批准该权限会可能有什么不好的事情发生。
-
android:enabled
Android系统是否能够实例化该应用程序的组件,如果为true,每个组件的enabled属性决定那个组件是否可以被 enabled;如果为false,它覆盖组件指定的值,所有组件都是disabled。
-
android:hasCode('true' or 'false')
表示此APP是否包含任何的代码,默认为true,若为false,则系统在运行组件时,不会去尝试加载任何的APP代码。一个应用程序自身不会含有任何的代码,除非内置组件类。
比如Activity类,此类使用了AliasActivity类,当然这是个罕见的现象(在Android2.3可以用标准C来开发应用程序,可在androidManifest.xml中将此属性设置为false,因为这个APP本身已经不含有任何的JAVA代码了)
-
android:icon
这个很简单,就是声明整个APP的图标,图片一般都放在drawable文件夹下
-
android:killAfterRestore
这个属性是指在一个完整的系统恢复操作之后应用程序是否被终止。单个应用程序的恢复操作不会引起应用程序的终止。完整的系统恢复操作一般仅在手机首次安装时才会发生一次。第三方应用通常都不需要使用该属性。该属性的默认值为true,意为在完整的系统恢复期间,应用程序在结束处理其数据之后将被终止。
-
android:manageSpaceActivity
如果想自己管理数据目录,则可以使用android:manageSpaceActivity属性来控制,而不是默认的全部清除了/data/data/包名/里面的所有文件。当然我们还可以扩展,比如清除SD卡上的数据,如果拥有root权限,还可以用它当成垃圾清理。
-
android:name
为应用程序所实现的Application子类的全名。当应用程序进程开始时,该类在所有应用程序组件之前被实例化,若该类(比方androidMain类)是在声明的package下,则可以直接声明,但此类是在package下面的子包的话,就必须声明为全路径或android:name="package名称.子包名.androidMain"。
-
android:permission
设置许可名,这个属性若在<application>上定义的话,是一个给应用程序的所有组件设置许可的便捷方式,当然它是被各组件设置的许可名所覆盖的。
-
android:presistent
该应用程序是否应该在任何时候都保持运行状态,默认为false,因为应用程序通常不应该设置本标识,持续模式仅仅应该设置给某些系统应用程序才是有意义的。
-
android:process
应用程序运行的进程名,它的默认值为<manifest>元素里设置的包名,当然每个组件都可以通过设置该属性来覆盖默认值。如果你想两个应用程序共用一个进程的话,你可以设置他们的android:process相同,但前提条件是他们共享一个用户ID及被赋予了相同证书的时候。
-
android:restoreAnyVersion
同样也是android2.2的一个新特性,用来表明应用是否准备尝试恢复所有的备份,甚至该备份是比当前设备上要更新的版本,默认是false。
-
android:taskAffinity
拥有相同的affinity的Activity理论上属于相同的Task,应用程序默认的affinity的名字是<manifest>元素中设定的package名。
-
android:theme
是一个资源的风格,它定义了一个默认的主题风格给所有的activity,当然也可以在自己的theme里面去设置它,有点类似style。
3、<Activity>
<activity android:allowTaskreparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:clearTaskOnLaunch=["true" | "false"] android:configChanges=["mcc", "mnc", "locale", "touchscreen", "keyboard", "keyboardHidden", "navigation", "orientation", "screenLayout", "fontScale", "uiMode"] android:enabled=["true" | "false"] android:excludeFromrecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:launchMode=["multiple" | "singletop" | "singleTask" | "singleInstance"] android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:permission="string" android:process="string" android:screenorientation=["unspecified" | "user" | "behind" | "landscape" | "portrait" | "sensor" | "nosensor"] android:stateNotNeeded=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "statealwaysHidden", "stateVisible", "statealwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] </activity>
-
android:alwaysRetainTaskState
是否保留状态不变, 比如切换回home,再从新打开,activity处于最后的状态。
比如一个浏览器拥有很多状态(当打开了多个TAB的时候),用户并不希望丢失这些状态时,此时可将此属性设置为true。
-
android:clearTaskOnLaunch
比如 P 是 Activity, Q 是被P 触发的 Activity,然后返回Home, 重新启动 P,是否显示 Q。
-
android:configChanges
当配置list发生修改时, 是否调用 onConfigurationChanged() 方法。
比如 "locale | navigation | orientation",这个主要用来看手机方向改变的。 Android手机在旋转后,layout会重新布局,如何做到呢?正常情况下, 如果手机旋转了,当前Activity会被杀掉,然后根据方向重新加载这个Activity,就会从onCreate开始重新加载;如果你设置了这个选项,当手机旋转后,当前Activity之后会调用onConfigurationChanged() 方法而不跑onCreate()方法等。
-
android:excludeFromrecents
是否可被显示在最近打开的activity列表里,默认是false。
-
android:finishOnTaskLaunch
当用户重新启动这个任务的时候,是否关闭已打开的activity,默认是false。
如果这个属性和allowTaskreparenting都是true,那么这个属性就是王牌,Activity的亲和力将被忽略,该Activity已经被摧毁并非re-parented。
-
android:launchMode
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。
-
android:multiprocess
是否允许多进程,默认是false。
-
android:noHistory
当用户从Activity上离开并且它在屏幕上不再可见时,Activity是否从Activity stack中清除并结束,默认是false,Activity不会留下历史痕迹。
-
android:screenorientation
activity显示的模式,默认为unspecified:由系统自动判断显示方向。
landscape:横屏模式,宽度比高度大;
portrait:竖屏模式, 高度比宽度大;
user模式:用户当前首选的方向;
behind模式:和该Activity下面的那个Activity的方向一致(在Activity堆栈中的);
sensor模式:有物理的感应器来决定;
nosensor模式:忽略物理感应器,这样就不会随着用户旋转设备而更改了。
-
android:stateNotNeeded
Activity被销毁或者成功重启时是否保存状态。
-
android:windowSoftInputMode
Activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
1.当有焦点产生时,软键盘是隐藏还是显示
2.是否减少活动主窗口大小以便腾出空间放软键盘
各值的含义:
- stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
- stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
- stateHidden:用户选择activity时,软键盘总是被隐藏
- statealwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
- stateVisible:软键盘通常是可见的
- statealwaysVisible:用户选择activity时,软键盘总是显示的状态
- adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
- adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
- adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
4、<intent-filter>
<intent-filter android:icon="drawable resource" android:label="string resource" android:priority="integer" > <action /> <category /> <data /> </intent-filter>
-
priority属性
有序广播主要是按照声明的优先级别,如A的级别高于B,那么,广播先传给A再传给B。优先级别就是用设置priority属性来确定,范围是从-1000~1000,数越大优先级别越高。
Intent filter内会设定的资料包括action、data与category三种,也就是说filter只会与intent里的这三种资料作对比动作。
-
action属性
action很简单,只有android:name这个属性。常见的android:name值为android.intent.action.MAIN,表明此activity是作为应用程序的入口。
-
category属性
category也只有android:name属性。常见的android:name值为android.intent.category.LAUNCHER(决定应用程序是否显示在程序列表里,优先级最高的组件)
-
data属性
<data android:host="string" android:mimeType="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:port="string" android:scheme="string" />
- 每个<data>元素指定一个URI和数据类型(MIME类型)。它的四个属性scheme、host、port、path对应于URI的每个部分: scheme://host:port/path。scheme的值一般为"http",host为包名,port为端口号,path为具体地址。
其中host和port合起来构成URI的凭据(authority),如果host没有指定,则port也会被忽略。要让authority有意义,scheme也必须要指定。要让path有意义,scheme+authority也必须要指定。 - mimeType(指定数据类型),若mimeType为'Image',则会从Content Provider的指定地址中获取Image类型的数据。还有“video”等,若设置为video/mp4,则表示在指定地址中获取mp4格式的video文件
- 而pathPattern和PathPrefix主要是为了格式化path所使用的
转自:https://www.jianshu.com/p/1a8df0a8707c
Android studio如何新建Android xml文件?
1、要进行创建资源文件之前,需要先把鼠标代码的文件中进行选中,或者进行选中项目。
2、然后点击菜单中菜单中的”file;的选项。

3、就会弹出了一个下拉的菜单中,进行选择下拉菜单中的;new”的选项按钮。

4、这样就会弹出了一个下一级的菜单中,进行选择菜单中的;Android resource file”的选项。

5、然后就会弹出了一个new resource file的选项,进入输入一个file name的文件名,在available qualifiers的进行选择layout direction进行点击双箭头,然后就可以点击”OK;。

6、这样话在Android studio的资源文件就创建成功了。

Android studio中如何创建带标签的xml资源文件
除了创建values resources file 时生成的resources标签有用,selector和alpha、set这些标签如何手动创建。一直红字报错的解决方法:

Android XML文件中android:id,android:name和name标签之间的区别
例如,当我在res / values / array.xml文件中有一个字符串数组时,我使用定义的数组中的name字段进行访问,而Javadoc则将其称为“ID”.
android:id似乎只是在Views中使用?
我错过了一些东西,还是不会有简单的标签?
解决方法
要进一步深入,我相信android:id属性只分配给视图和扩展视图的类.这样做可以使用findViewById从代码中以编程方式访问该视图:
Button myButton =(Button)findViewById(R.id.whatever_id_assigned_to_view)
这与诸如strings.xml或array.xml之类的资源不同,这些资源仅通过名称来标识,例如可以在strings.xml中找到的以下示例:
< string name =“string_name”>文本资源此处< / string>
并使用…访问
getResources().的getText(R.string.string_name)
我想像这是因组织原因而分开的.这样生成的Android资源文件(R.java)包含为R.id中的视图指定的ID,R.string中包含的字符串ID,R.array等中的数组ID.
android xml文件应用
1.android 让Activity透明起来
2.
我们今天的关于使用Android发布XML文件和安卓开发xml的分享就到这里,谢谢您的阅读,如果想了解更多关于Android Studio中的AndroidManifest.xml文件分析、Android studio如何新建Android xml文件?、Android XML文件中android:id,android:name和name标签之间的区别、android xml文件应用的相关信息,可以在本站进行搜索。
本文标签: