我正在开发一个人们将输入账单的 android 应用程序。我有一个人们输入金额的 EditText。
我想要做的是,例如如果一个人输入“2”,它应该自动转换为“0.02”。然后,如果他/她想输入 22$,他应该按 2、2、0 和 0 按钮。它会像那个“22.00”。我如何使用 EditText 设法做到这一点。你能给我一些想法吗?
这是相关的代码片段:
<EditText
android:id="@+id/amount"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dip"
android:layout_marginTop="5dip"
android:inputType="number"
android:hint="@string/enter_amount"
android:singleLine="true" />
EditText payment = (EditText) findViewById(R.id.amount);
if (payment.getText().toString().length() > 0){
total_amount =Integer.parseInt(payment.getText().toString()) ;
}
Run Code Online (Sandbox Code Playgroud) 例如,当您在同一个文件的团队中工作时,只能部分了解导入代码所需的不同软件包.您更改了此文件中的某些代码,并发现某些代码因此而变得多余.您删除该部分,现在不知道整个代码是否仍依赖于所有包.
[当然,不好可以在很多方面被客体化:速度,读取能力等]
我知道在 XML 和 java 文件中可以做什么和不可以做什么是有区别的,但到目前为止,我了解到 java 文件可以做 XML 文件可以做的所有事情,至少我正在阅读的书中是这样写的(请参阅下面的报价)。
因此,我的问题是,在用 java 或 xml 编写代码时是否会存在性能差异,如果是:两者中的哪一个比另一个更受青睐?这不是关于正确方法的问题,而是关于纯粹性能的问题。
我知道 xml 代码被编译成 java 代码,也许这可以比翻译 java 代码更有效,因为为 xml 编写编译器比为 java 文件编写编译器更容易?(基于 xml 确实更容易解析的假设,因为它例如更连贯且结构更简单)
从书中引用
这是书中的实际引述,它指出 java 文件可以做 xml 文件可以做的一切。它首先解释了制作用户界面的两种方法,即声明式和编程式:
声明式方法涉及使用 XML 来声明 UI 的外观,...
...
编程用户界面涉及编写 Java 代码来开发 UI。
...
您可以以声明方式执行的所有操作,也可以以编程方式执行。
在我的教科书中,他们将主要功能放在代码示例的底部.作为一个传统的图书阅读器,我从第1行开始阅读.虽然我明白编码的控制流程与图书中的不同(从下到上,每行一行),我不明白为什么你会想要你的第一个代码行不是程序的入口点.这有什么特别的原因吗?
我想做这样的事情:
int i = 0;
switch(difficulty) {
case 1: i++; break;
case 2: i--; break;
default: case 1;
}
Run Code Online (Sandbox Code Playgroud)
这样的事情可能吗?我想防止重复的代码.我知道在这个特定的例子中没有理由这样做,因为重复的代码会很小.我能想出的唯一一件事是[使用开关盒的能力下降]:
switch(difficulty) {
case 2: i--; break;
default:
case 1: i++; break;
}
Run Code Online (Sandbox Code Playgroud)
我宁愿不这样做,因为增加案例数量并在底部有默认值会更有意义.
但是我想知道,如果我这样做,它会搞砸引擎盖下的goto语句吗?特别是,不需要更长的时间来决定使用哪个goto语句,因为数字或乱序?订单在switch语句中是否重要?想象一下,所有案例都有相同的被调用几率,如果你以随机顺序而不是线性顺序将它们放在一起会有意义吗?
[编辑:对于我关于效率的问题,我发现:交换语句的顺序是否重要,简短的答案是否:交换机案例顺序是否会影响速度? Java的交换机是如何工作的?
我的程序中的特定数据点保持不变。我试图通过迭代更新来适应数据线。我想看看在更新该线路的参数时该线路如何变化(移动)。
具体来说,我正在进行梯度下降,并且试图了解每次更新如何改变线的角度和位置以最适合数据。
现在我得到了这个:
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax1.scatter(xs, ys)
plt.plot(xs, thetas[0] + thetas[1] * xs, color='red')
plt.show()
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我也很难绘制一条连续的线。现在我需要更新红线。有任何想法吗?thetas[0]并且thetas[1]是 for 循环中的更新,之后绘图也需要更新..
我正在读一本关于Java的书.它给出了一个这样的例子:
class UseStatic {
static int a = 3;
static int b;
// ... some more lines
static {
b = 4 * a;
}
}
Run Code Online (Sandbox Code Playgroud)
然后它解释了这个:
一旦
UseStatic类被加载,所有的static语句运行.首先,a设置为3,然后静态块执行,...,然后初始化b为a*4或12.
我想知道这里的线路是如何实现的.它如何能第一,从顶部开始的static int a = 3以才跳过static int b来static {..},只再跳回静态INT B' 它如何知道这种依赖?
java ×5
android ×2
import ×1
matplotlib ×1
packages ×1
performance ×1
python ×1
runtime ×1
static ×1
xml ×1