是否可以将用户的输入记录到 HTML 文本字段中,并在以后实时播放?我能想到的一种方法是捕获每个 keyDown 事件和时间增量(精确到几百毫秒),并将这些对存储在一起。
你能想到更好/更有效的方法吗?
对于一个EditText盒子,用户应该只输入有效数字,所以我正在使用android:inputType="numberDecimal".不幸的是,Android提出的软键盘只有顶行的数字,而接下来的三行有各种其他符号(美元符号,百分号,感叹号,空格等).由于numberDecimal只接受数字0-9,负号和小数点,因此使用"手机"软键盘(3x3网格中的0-9,加上其他一些符号)会更有意义.这将使按钮更大并且更容易被击中(因为它是4x4网格而不是同一屏幕区域中的10x4网格).不幸的是,使用android:inputType="phone"允许非数字字符,如括号
我试图使用android:inputType="numberDecimal|phone",但numberDecimal位标志的方面似乎被忽略了.我也试过android:inputType="phone"结合使用android:digits="0123456789-.",但仍然允许多个负号或小数点(inputType="number"对于这样的事情有非常好的错误检查,并且不会让用户输入它).我也尝试android:inputType="phone"在xml布局文件中使用,同时DigitsKeyListener在java代码中使用a ,但是那只是使用默认数字软键盘(只有顶行有数字的键盘)(它似乎设置InputType.TYPE_CLASS_NUMBER,这使得InputType.TYPE_CLASS_PHONE集合无效通过xml布局).
编写自定义IME不起作用,因为用户必须选择IME作为应用程序外的全局选项.
有没有办法使用"手机"式软键盘同时使用"数字"限制输入什么?
在我的Android应用中,我有一个标签Activity.在其中一个标签中,我有两个TextViews和两个EditTexts.
第一个EditText只有一行,那没关系.不过,我想其他的EditText,android:id="@+id/paste_code",占用的剩余空间,但无论我做什么它,它会只显示一行.我不想手动设置行数,因为屏幕上适合的数字因设备而异.
这是相关的代码.它嵌套在选项卡的所有必要组件中Activity.
<ScrollView
android:id="@+id/basicTab"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Paste title"
android:layout_weight="0" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/paste_title_hint"
android:id="@+id/paste_title"
android:lines="1"
android:gravity="top|left"
android:layout_weight="0" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Paste text"
android:layout_weight="0" />
<EditText
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:hint="@string/paste_hint"
android:id="@+id/paste_code"
android:gravity="top|left"
android:layout_weight="1" />
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud) 我有一个名为Grouping的抽象类.我有一个名为GroupingNNA的子类.
public class GroupingNNA : Grouping {
// blah blah blah
}
Run Code Online (Sandbox Code Playgroud)
我有一个List包含GroupingNNA类型的项目,但实际上声明包含类型分组的项目.
List<Grouping> lstGroupings = new List<Grouping>();
lstGroupings.Add(
new GroupingNNA { fName = "Joe" });
lstGroupings.Add(
new GroupingNNA { fName = "Jane" });
Run Code Online (Sandbox Code Playgroud)
问题: 由于lstGroupings被声明为List <Grouping>而fName是GroupingNNA的属性而不是Grouping,因此以下LINQ查询对我不利.
var results = from g in lstGroupings
where r.fName == "Jane"
select r;
Run Code Online (Sandbox Code Playgroud)
哦,这是一个编译器错误,而不是运行时错误.在此预先感谢任何帮助!
更多信息: 这是不能编译的实际方法.OfType()修复了LINQ查询,但编译器不喜欢我试图将匿名类型作为List <Grouping>返回的事实.
private List<Grouping> ApplyFilterSens(List<Grouping> lstGroupings, string fSens) {
// This works now! Thanks @Lasse
var filtered = from r in lstGroupings.OfType<GroupingNNA>()
where r.QASensitivity == fSens
select r; …Run Code Online (Sandbox Code Playgroud) 我有一个单行C函数return value * pow(1.+rate, -delay);- 它将未来值折现为现值.反汇编的有趣部分是
0x080555b9 : neg %eax 0x080555bb : push %eax 0x080555bc : fildl (%esp) 0x080555bf : lea 0x4(%esp),%esp 0x080555c3 : fldl 0xfffffff0(%ebp) 0x080555c6 : fld1 0x080555c8 : faddp %st,%st(1) 0x080555ca : fxch %st(1) 0x080555cc : fstpl 0x8(%esp) 0x080555d0 : fstpl (%esp) 0x080555d3 : call 0x8051ce0 0x080555d8 : fmull 0xfffffff8(%ebp)
虽然单步执行此函数,gdb说(速率为0.02,延迟为2;您可以在堆栈上看到它们):
(gdb) si 0x080555c6 30 return value * pow(1.+rate, -delay); (gdb) info float R7: Valid 0x4004a6c28f5c28f5c000 +41.68999999999999773 R6: Valid 0x4004e15c28f5c28f6000 +56.34000000000000341 R5: Valid 0x4004dceb851eb851e800 +55.22999999999999687 …
我想创建一个简单的Android二进制时钟,但我的应用程序崩溃.我使用6个textview字段:3表示小数,3表示当前时间的二进制表示(HH:mm:ss).这是代码:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Binary extends Activity implements Runnable
{
Thread runner;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (runner == null)
{ //start the song
runner = new Thread(this);
runner.start();
}
}
@Override
public void run()
{
TextView hours_dec = (TextView) findViewById(R.id.hours_dec);
TextView mins_dec = (TextView) findViewById(R.id.mins_dec);
TextView secs_dec = (TextView) findViewById(R.id.secs_dec);
TextView hours_bin = (TextView) findViewById(R.id.hours_bin);
TextView mins_bin …Run Code Online (Sandbox Code Playgroud) 所以,我已经编程了一段时间,但由于我还没有参与过许多大型模块化项目,我之前没有遇到过这个问题.
我知道C++中的.dll是什么,以及它们是如何被使用的.但每当我在Java中看到类似的东西时,它们总是与源代码打包在一起.例如,如果我想将Java库提供给其他人,但是不公开源代码,我该怎么办?而不是源代码,我只是将一个库以及一个Javadoc或类似的东西与公共方法/函数一起提供给另一个程序员,然后他们可以在他们自己的Java代码中实现它们.
例如,如果我想创建一个可以被另一个程序员"借用"的SAX解析器,但是(出于某种原因 - 在这个具体示例中无法想到lol)我不想公开我的源代码.也许有一个我不想被利用的登录 - 我不知道.
但是这样做的Java方法是什么?使用C++,.dll文件使它变得更容易,但到目前为止我从未遇到过Java等价物.(我是Java的新手,也是一个非常新的"现实世界"程序员,一般而言)
我有几个文件,每个我需要导入SQL Server 2005的CSV数据大约15k.
将csv数据导入sql server最简单的方法是什么?理想情况下,工具或方法也会创建表,因为其中有大约180个字段,这将简化操作.
Java语言规范定义了第17.5节中最终字段的语义:
最终字段的使用模型很简单.在该对象的构造函数中设置对象的最终字段.在对象的构造函数完成之前,不要在另一个线程可以看到的位置写入对正在构造的对象的引用.如果遵循此原因,那么当另一个线程看到该对象时,该线程将始终看到该对象的最终字段的正确构造版本.它还将看到那些最终字段引用的任何对象或数组的版本,这些字段至少与最终字段一样是最新的.
我的问题是 - '最新'保证是否扩展到嵌套数组和嵌套对象的内容?
简而言之:如果一个线程将可变对象图分配给对象中的最终字段,并且对象图永远不会更新,那么所有线程都可以通过最终字段安全地读取该对象图吗?
示例场景:
在这种情况下,线程B看到的ArrayList的成员是否保证至少与MyClass的构造函数完成时一样最新?
我正在寻找澄清Java内存模型和语言规范的语义,而不是像同步这样的替代解决方案.我的梦想答案是肯定或否定,并参考相关文字.
更新:
我有一个巨大的(4GB)XML文件,我目前正在使用linux"split"函数(每25,000行 - 不是字节)分成块.这通常很有效(我最终得到了大约50个文件),除了一些数据描述有换行符,因此块文件经常没有正确的结束标记 - 而且我的解析器在处理过程中中途窒息.
示例文件:( 注意:通常每个"列表"xml节点应该在它自己的行上)
<?xml version="1.0" encoding="UTF-8"?>
<listings>
<listing><date>2009-09-22</date><desc>This is a description WITHOUT line breaks and works fine with split</desc><more_tags>stuff</more_tags></listing>
<listing><date>2009-09-22</date><desc>This is a really
annoying description field
WITH line breaks
that screw the split function</desc><more_tags>stuff</more_tags></listing>
</listings>
Run Code Online (Sandbox Code Playgroud)
然后有时我的分裂最终会像
<?xml version="1.0" encoding="UTF-8"?>
<listings>
<listing><date>2009-09-22</date><desc>This is a description WITHOUT line breaks and works fine with split</desc><more_tags>stuff</more_tags></listing>
<listing><date>2009-09-22</date><desc>This is a really
annoying description field
WITH line breaks ...
EOF
Run Code Online (Sandbox Code Playgroud)
所以 - 我一直在阅读"csplit",听起来它可能有助于解决这个问题.我似乎无法正确表达正确的表达......
基本上我想要〜50ish文件的相同输出
就像是:
*csplit -k myfile.xml '/</listing>/' 25000 {50}
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒谢谢!