Articles of android xml

parsingXML时Android org.xmlpull.v1.XmlPullParserException

我有一个情况,我打电话给一个Web服务,它返回一些XML信封中的HTML。 喜欢: <xml version="1.0" cache="false"> <head/> <body> <table> <tr> <td> <a href="link-to-prev-post"> <text color="red"><< Prev</text> </a> </td> <td> <a href="link-to-next-post"> <text color="red">| Next >></text> </a> </td> </tr> </table> </body> </xml> 我必须检索链接到前导 链接和链接到下一个链接..所以我可以通过这些链接获取更多的数据。 我正在使用XmlPullParser来parsing上面提供的XML / HTML。 要获得下一个/ prev项目的链接,我正在做如下: if (xmlNodeName.equalsIgnoreCase("a")) { link = parser.getAttributeValue(null, "href"); } else if (xmlNodeName.equalsIgnoreCase("text")) { color = parser.getAttributeValue(null, "color"); if (color.equalsIgnoreCase("red") […]

以编程方式使用XML布局作为模板创buildandroidbutton

我有一个包含TextView的LinearLayout,并且总是会。 TextView下面至less还会有一个button,但在某些情况下可能会有多个button。 我可以成功创build和添加尽可能多的button,因为我需要编程。 我也可以用编程方式成功设置我需要这些button的外观相关参数/选项。 问题是我不知道如何告诉程序创build的button,它应该使用包含外观和布局参数的XML资源文件,而不是以编程方式设置这些参数。 我已经看了类似的命名问题,并花费时间搞乱API本身,没有用。 编辑: 下面是我正在尝试做的一个近似,希望能够使我的解释更加清晰: private TextView textView; private SomeObject someObject; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View scrollView = inflater.inflate(R.layout.fragment_play_game, container, false); textView = (TextView) scrollView.findViewById(R.id.game_data_text); textView.setText(someObject.getTextForTextView()); LinearLayout layout = (LinearLayout) scrollView.findViewById(R.id.game_data_container); for (String optionText : someObject.getTextForButtons()) { layout.addView(createOptionButton(optionText, layout)); } return scrollView; } private View createOptionButton(String […]

只在必要时才在特定位置添加换行符

在我的Android布局,我有一个TextView,使用一半的可用宽度的屏幕。 在运行时,我将文本设置为(长)电子邮件地址。 例如: googleandroiddeveloper@gmail.com 如果文本不符合一行,Android将插入换行符,这是所需的行为。 但是,换行符的位置在第一个不符合该行的字符之前。 结果可能是这样的: googleandroiddeveloper@gmai l.com 我认为,这是一种丑陋,特别是在电子邮件地址。 我希望换行符出现在@字符之前: googleandroiddeveloper @gmail.com 当然,我可以在我的strings.xml添加一个\n 。 但是,那么电子邮件地址在每一种情况下都会使用两行,即使它适合一行。 我以为我已经find了在电子邮件地址中添加一个零宽度空间( \u200B )的解决scheme。 <string name="email">googleandroiddeveloper\u200B@gmail.com</string> 但除了使用标准空格,Android不会将特殊空格字符检测为易碎空间,因此此时不会添加换行符。 由于我在应用程序的多个地方处理了许多电子邮件地址,因此我正在寻找一种解决scheme,在@字符之前添加易碎和不可见的空间,所以如果不适合一行,则Android会封装电子邮件地址。

TypedArray.getInteger()和TypedArray.getInt()有什么区别?

查看TypedArray( 链接 )的源代码,我似乎无法弄清楚这两种方法之间的区别是什么。 getInt()与getInteger()基本相同,但是在最后我还是不了解。 有人可以向我解释吗? 我需要知道区别的原因是我正在实现一个自定义首选项的子类,并获得我需要重写onGetDefaultValue() ,从TypedArray获取整数的默认值。 例: @Override protected Object onGetDefaultValue(TypedArray a, int index) { return a.getInteger(index, DEFAULT_VALUE); } 这里我使用getInteger() ,但是如果getInt()更好,那么我将使用它。

Android ImageView的重量大小不在中心LinearLayout

我意识到这可能是一个微不足道的布局问题,但我似乎无法按照我所希望的方式工作,而没有在我觉得太多的容器布局中进行分层。 我想要做的是设置一个ImageView,以满足以下条件: ImageView的宽度是其父级的宽度的某个给定百分比(现在的屏幕宽度)。 ImageView在屏幕中水平居中。 我已经使用XML布局创build了一个testing用例,但实际上我将以编程方式创build这些布局和视图; 我认为这不是为了弄清楚正确的布局。 我比较熟悉Android布局中的权重,以及它们通常如何用相对加权因子来布局多个视图。 为了满足条件1,我创build了一个容器LinearLayout(水平方向),设置它的weightSum = 1,然后用我想要的任何比例(比如说0.5)embedded我的ImageView。 这工作! 接下来,我想让ImageView水平居中在屏幕上。 所以我把重心设置为“center”/“centerHorizo​​ntal”。 这是我卡住的地方,因为无论我select的重力/ layout_gravity设置如何总是alignment到左侧。 布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFFFFF"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:weightSum="1.0"> <ImageView android:src="@drawable/earth" android:adjustViewBounds="true" android:layout_width="0" android:layout_height="wrap_content" android:layout_weight="0.5" android:layout_gravity="center_horizontal" android:id="@+id/imageView1" /> </LinearLayout> </LinearLayout> 结果: 我真正想要达到的是这样的: 但为了实现这一点,我不得不在我的ImageView的两侧插入两个哑权LinearLayouts,像这样: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFFFFF"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:weightSum="1.0"> <LinearLayout android:orientation="horizontal" android:layout_width="0" […]

android expandablelistview如何设置组项之间的空间

我有expandablelistview,我想在组项目之间添加填充(或边距),我在组项目上使用了margin-botton ,它可以工作,但现在它也适用于组项目和它的子项目,我想保留一个空格在小组项目之间,而不是在小组项目和它的小孩之间,我的工作是这样的: 主要的XML <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#FFFFFF"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:typeface="serif" android:textSize="25dip" android:textColor="#025f7c" android:text="@string/tv_allAddresses" android:layout_gravity="center" android:layout_marginTop="20dip" android:layout_marginBottom="25dip"/> <ExpandableListView android:id="@+id/elv_all_addresses_addresses" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dip"> </ExpandableListView> </LinearLayout> 组xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tv_all_address_group_groupName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="30dip" android:textColor="#000000" android:textSize="20dip" android:typeface="serif" /> </LinearLayout> 孩子xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" […]

带有圆angular的自定义微调器,描边和select器图标

我希望我的Spinner有一个黑色的渐变背景,左边是白色的文字,右边是select器图标(白色的向下的三angular形)。 正如我所看到的,有两种方法可以解决这个问题: 如果我将背景设置为xml可绘制资源,我可以使Spinner看起来很完美,但是我需要以某种方式在右侧添加白色三angular形,我不知道该如何去做: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <gradient android:startColor="#343434" android:endColor="#171717" android:angle="270" /> <stroke android:width="1dp" android:color="#ffffff" /> <corners android:radius="4dp" /> <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp" /> </shape> </item> </selector> 我创build了一个包含三angular形的9-patch图像,然后使用xml绕过angular并为图像添加一个描边。 我已经去了,但无法使其工作: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/spinnerblack" > <stroke android:width="1dp" android:color="#ffffff" /> <corners android:radius="3dp" /> <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp" /> </item> […]

如何在Android中制作工具栏(如辅助操作栏)?

Gmail应用程序有这个工具栏,看起来类似于一个操作栏(甚至包括一个溢出菜单)。 这是一个约1/4屏幕的蓝色条。 见图1: 我想要的酒吧是一个红色的箭头指出。 我查看了文档,并没有看到这样做的小部件。 我怎样才能做出这样的酒吧? 此外,如果您看到下面的橙色箭头,则表示该应用程序在顶部和底部都有一个操作栏。 我很好奇如何做到这一点,但我的主要问题是如何使工具栏类似于任何我想要在屏幕上的操作栏。 图像1在电话上。 我还包括了下面的图片2和图片3,分别是7英寸平板电脑和10英寸平板电脑。 请注意,“分割”操作栏位于具有平板电脑视图的单个栏上。

在Android中使用ActionbarSherlock和jeremyfeinstein slidingmenu自定义ActionBar

我有一个行动sherlock栏,我需要定制这个控制如下图。 我需要一个伪代码或类似的简单例子。 我下载了图书馆的例子,我一直在search这个网站和谷歌,但我找不到像这样的东西。 对不起,如果信息不完整,在这种情况下,我将编辑与您需要的信息的职位。 谢谢。 注意: 我不想使用android.support.v4.widget.DrawerLayout , ActionBarDrawerToggle 。 我需要sherlock幻灯片效果。 我需要在菜单选项列表(LISTVIEW)之上的图像和标签(见右图)。 将来我会需要一个像下面这样的栏(风格必须相似才能看到这个链接 )

以编程方式设置工具栏高度Android

我想通过这种方式编程设置工具栏的高度: toolbar.setLayoutParams(new Toolbar.LayoutParams(LayoutParams.MATCH_PARENT, 42)); toolbar.setMinimumHeight(42); 但它会导致这个日志的致命exception – > android.widget.relativelayout$layoutparams cannot be cast to android.support.v7.Toolbar$layoutparams 我也尝试这个变种: RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) toolbar.getLayoutParams(); params.height = 42; toolbar.setLayoutParams(params); toolbar.setMinimumHeight(42); 它没有给出例外,但也不起作用,工具栏获取默认更大的高度,而不是我定义的。 但当然在xml设置参数的作品,但我也需要在java中设置高度。 所以请帮我解决这个问题。