我正在尝试在按钮上创建一个图像(作为背景)并动态添加,具体取决于运行时发生的情况,图像上方/上方的一些文本.
如果我使用ImageButton我甚至没有可能添加文本.如果我使用,Button我可以添加文本,但只定义具有此处android:drawableBottom定义的XML属性的图像.
然而,这些属性仅在x和y维度中组合文本和图像,这意味着我可以在文本周围绘制图像,但不能在我的文本下方/下方(z轴定义为从显示中出来).
有关如何做到这一点的任何建议?一个想法是扩展Button或ImageButton覆盖draw()-method.但凭借我目前的知识水平,我真的不知道如何做到这一点(2D渲染).也许有经验的人知道解决方案或至少有一些指针可以开始?
在Android中验证电子邮件地址(例如来自用户输入字段)的好方法是什么?org.apache.commons.validator.routines.EmailValidator似乎不可用.有没有其他图书馆这样做已经包含在Android中,或者我是否必须使用RegExp?
我在for循环中以编程方式添加TextViews并将它们添加到ArrayList.
我该怎么用TextView.setId(int id)?我提出了什么整数ID,所以它不与其他ID冲突?
我有一个ListView地方,列表中的每个元素都包含一个TextView和两个不同的按钮.像这样的东西:
ListView
--------------------
[Text]
[Button 1][Button 2]
--------------------
[Text]
[Button 1][Button 2]
--------------------
... (and so on) ...
Run Code Online (Sandbox Code Playgroud)
使用此代码,我可以OnItemClickListener为整个项目创建一个:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> list, View view, int position, long id) {
Log.i(TAG, "onListItemClick: " + position);
}
}
});
Run Code Online (Sandbox Code Playgroud)
但是,我不希望整个项目是可点击的,而只是每个列表元素的两个按钮.
所以我的问题是,如何使用以下参数为这两个按钮实现onClickListener:
int button (单击了元素的哪个按钮)int position (这是按钮单击发生的列表中的元素)更新:我找到了一个解决方案,如下面的答案中所述.现在我可以通过触摸屏点击/点击按钮.但是,我无法使用轨迹球手动选择它.它总是选择整个列表项,并从那里直接进入下一个列表项忽略按钮,即使我设置.setFocusable(true)和setClickable(true)按钮getView().
我还将此代码添加到我的自定义列表适配器:
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
} …Run Code Online (Sandbox Code Playgroud) View有一个minHeight但不知何故缺少一个maxHeight:
我想要实现的是让一些项目(视图)填满ScrollView.当有1..3项时,我想直接显示它们.意味着它ScrollView具有1,2或3个项目的高度.
当有4个或更多项目我希望ScrollView停止扩展(因此a maxHeight)并开始提供滚动.
但是,遗憾的是没有办法设置maxHeight.因此,我可能必须以ScrollView编程方式WRAP_CONTENT将高度设置为有1..3项3*sizeOf(View)时的高度,并将高度设置为有4个或更多项时的高度.
任何人都可以解释为什么没有maxHeight提供,什么时候已经有minHeight?
(顺便说一下:有些观点,比如ImageView已经maxHeight实施了.)
如果a String长于TextView宽度,它会自动换行到下一行.我可以通过使用android:singleLine(已弃用)或通过设置来避免这种情况android:inputType="text".我现在需要的是String用" ...... " 代替我的最后3个字符.由于我没有使用等宽字体,因此根据我使用的字母不同,这将总是不同的String.所以我想知道在a中获取字符串的最后3个字符的最佳方法是什么,TextView并替换它们.也许已经在Android框架中实现了一些东西,因为这必然是一个常见的问题.
我想玩一些想法并开发Android的软键盘来取代默认的键盘.
有关于Android的软键盘开发的一般信息吗?任何最佳做法或指南?
我可以用我的键盘应用程序完成任何我可以使用普通Android应用程序做的事情吗?
我可以进行HTTP连接以将键盘数据与云数据库和我拥有的其他手机同步吗?
我可以通过按键打开其他窗口/屏幕,例如显示与普通QWERTY不同的自定义输入界面.如果这不起作用,我可以使用弹出对话框吗?
我与请求JSON数据的Web服务器进行HTTP通信.我想用这个压缩这个数据流Content-Encoding: gzip.有没有办法Accept-Encoding: gzip在我的HttpClient中设置?gzipAndroid参考中的搜索不会显示与HTTP相关的任何内容,您可以在此处看到.
在复杂的屏幕(视图控制器)中,我曾经将整个事物分成小块(我称之为小部件).这些小部件基本上由一个MyWidget.h和一个MyWidget.m文件以及一个MyWidget.xib文件组成,其中根元素是a UIView,而MyWidget类是UIView的文件所有者.在这个小部件的init中,我做了一个loadNibNamed.
在我的View Controller中,然后执行a [[MyWidget alloc] init],我将其作为子视图添加到View的Controller主视图中.到目前为止,这完美地运作.
我现在想知道,如何对故事板做同样的事情,因为我无法真正开始拖入UIView某个地方,我总是要从一个开始UIViewController,我不想这样做.
如果使用Storyboard无法做到这一点,我可以简单地使用故事板进行主屏幕和segue,并使用单独的.xib文件来定义自定义视图吗?
我添加了第二个虚拟设备来测试不同的屏幕分辨率(QVGA),但现在我想再次切换回第一个AVD(HVGA).如何在Eclipse中将虚拟设备设置为默认使用,甚至专门用于我的项目?在属性中,我只能设置API级别.
我也无法在命令行工具文档中找到任何手动设置此信息的信息.