我希望能够为MenuItem指定自定义视图.
我想在操作栏中的购物车菜单项上显示一个指示器,显示当前购物车中有多少商品.
我能做到这一点的唯一方法是添加自定义视图而不是使用MenuItem生命周期等?
我有几个自定义UI元素将在几个项目中使用.每个项目将使用相同的UI元素,但具有不同的前端.
例如:按钮类型的背景图像将根据项目而不同.
如何以这种方式打包UI类和资源,以便项目可以使用它们,同时能够修改外观?
我想为具有数字小键盘的Android应用程序创建布局,并使用四位数来确定它是否与预设的密码值匹配.
我已经看到一些应用程序使用它,所以我认为它是一些描述的高级小部件.
我能找到的唯一能够远离我想要的东西的是:
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:inputType="numberPassword" >
<requestFocus />
</EditText>
Run Code Online (Sandbox Code Playgroud)
但这并不是我想要的.
任何输入都会很棒,并提前感谢.
编辑:这是我想要的iOS保管箱应用程序启动屏幕的图像:

Android中的Spinner存在问题.从下拉列表中选择项目将在下次打开时调整该下拉列表的偏移量.因此,例如,如果我在500项下拉列表中选择项目100,则下次打开下拉列表时,项目100将位于列表的顶部.这是我想要的行为.
当我将选择器功能与调用结合起来时似乎存在问题setSelection(int).通过以下步骤,我似乎打破了下拉式微调器上的偏移系统.
setSelection(int)Spinner的值大于2.我已经看过Spinner和AdapterView中的代码,但我看不到任何我错过的公共电话.这是Spinner中的错误还是我的代码中的错误?
我正在分析正在加载二进制文件的代码.加载时间约为15秒.
我的大部分加载时间来自加载二进制数据的方法.
我有以下代码来创建我的DataInputStream:
is = new DataInputStream(
new GZIPInputStream(
new FileInputStream("file.bin")));
Run Code Online (Sandbox Code Playgroud)
我把它改成了这个:
is = new DataInputStream(
new BufferedInputStream(
new GZIPInputStream(
new FileInputStream("file.bin"))));
Run Code Online (Sandbox Code Playgroud)
所以在我做了这个小修改之后,加载代码从15秒变为4.
但后来我发现BufferedInputStream有两个构造函数.另一个构造函数允许您显式定义缓冲区大小.
我有两个问题:
我正在用Java编写一个应用程序,它将命令发送到智能卡并通过NFC接口解析响应.此应用程序可以在Android和PC上使用.
通过PC使用USB非接触式读卡器,我可以毫不费力地连接并与我扔的任何卡通信.
Android是另一回事.通过Nexus S使用应用程序会产生不太理想的结果,具体取决于卡.
有些卡将以100%的成功率连接和通信.我尝试使用的大多数卡片甚至很难建立连接,更不用说与之通信了.
Nexus S上的NFC服务正在尝试连接卡.它产生连续的低脉冲声,表明它无法建立牢固的连接(据我所知).
我目前的思维过程是Nexus S的NFC芯片功耗低于我正在使用的USB PC阅读器.从我读过的其他文章来看,似乎不同的卡具有不同的功率要求才能使用它们.
如何确定为卡供电所需的功率级别?它隐藏在ATR的某个地方吗?
如何确定特定NFC芯片的功率水平?这是在某处记录的吗?
我有时会用Java修改类名.这导致我也需要修改文件名.
为了维护SVN中文件的历史记录,我使用了一个名为Repair Move的TortoiseSVN工具.
在"检查修改"视图中,选择两个文件,一个丢失,一个未版本化.当您右键单击其中一个时,可以选择"修复移动".
这将删除SVN中的旧文件,并在附加旧文件的历史记录时添加新文件.这样,当你svn log时,你可以看到自文件名更改之前的整个历史记录.
git有一个等效的命令吗?从我读过的工作流程看来,我应该做以下事情:
git mv <old filename> <new filename>
# Make the class name changes to reflect the filename change.
git commit -a -m "Changed filename from Foo.java to Bar.java"
Run Code Online (Sandbox Code Playgroud)
这似乎是一个很长的路要走.
git mv一旦我手动移动文件并对文件本身进行了更改,我想我可以使用.它似乎git mv只是mv命令的包装,并将更改添加到git.
移动发生后有没有办法通知git移动的文件?
我有一个实现特定接口的通用列表类.
界面中的列表项也实现了相同的界面.
public abstract class List<T extends SomeInterface> implements SomeInterface
{
protected LinkedList<T> m_list;
...
}
Run Code Online (Sandbox Code Playgroud)
所以现在我想使这个列表的子类保持通用,但将项目限制为实现SearchListItem接口的对象:
public interface SearchListItem
{
public String getName();
}
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止为SearchList类所拥有的:
public abstract class SearchList<T extends SearchListItem> extends List<T>
{
public T get(String name)
{
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
但当然这引起了对班级定义的抱怨:
Bound mismatch: The type T is not a valid substitute for the bounded parameter <T extends SomeInterface> of the type List<T>
Run Code Online (Sandbox Code Playgroud)
那么我需要在类声明中说"SearchList扩展List类并对包含SomeInterface(在基类中)和SearchListItem的泛型类类型有其他限制"?
请告诉我,如果我可以改写这个来帮助解释它.
我有自定义View我写过,它将一系列按钮连接到预定义的方法.这些按钮是我正在创建的View的子项.
我的问题是,我可以用什么最早的方法来覆盖使用一系列findViewById的?我相信我不能在构造函数中使用它,因为任何调用findViewById都会返回null.
谢谢,
布拉德.
我的布局中有一个SearchView(不在操作栏中),我无法使用常用方法关闭键盘:
public static void hideKeyboard(Activity activity) {
InputMethodManager imm = (InputMethodManager)activity
.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null && activity != null) {
View currentFocus = activity.getCurrentFocus();
if (currentFocus != null) {
imm.hideSoftInputFromWindow(currentFocus.getWindowToken(), 0);
}
}
}
Run Code Online (Sandbox Code Playgroud)
SearchView保持其焦点状态.在旧设备上使用此方法会显示键盘被解除然后重新显示.
我认为问题在于SearchView实际上是一个视图层次结构,它在内部维护自己的状态.
如何关闭键盘并取消焦点SearchView?