- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我也是 Android 新手。我尝试开发一个 android 应用程序来获取用户输入项的总数。这是我的应用程序的草图。 enter image description here
用户必须输入 First Row Col1 和 Col 2。但 First Row Col3 可以输入或不输入。在 Sub 1 textview 中,第一行的总值应该显示。该值也应显示在结果 TextView 中。同样,如果用户将数据插入第二行,则值必须输入到 Col1 和 Col2 下。如果用户愿意,可以在第 3 列下输入值。第二行总值应显示在 Sub 2 TextView 中。如果用户在第二行输入值,则结果 TextView 应自动更新为 Sub 1 和 Sub 2 TextView 的总值。我尝试按如下方式执行此操作,但我找不到正确的方法来执行此操作。如果有人帮助我解决这个问题,我真的很感激。这是java类
public class AddTwo extends AppCompatActivity {
EditText edit1, edit2, edit3;
EditText edit4, edit5, edit6;
TextView textViewSub1, textViewSub2, textViewResult;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_add_two);
/*First row variables*/
edit1 = (EditText) findViewById(R.id.editText1);
edit2 = (EditText) findViewById(R.id.editText2);
edit3 = (EditText) findViewById(R.id.editText3);
textViewSub1 = (TextView) findViewById(R.id.TextViewsub1);
/*Second row variables*/
edit4 = (EditText) findViewById(R.id.editText5);
edit5 = (EditText) findViewById(R.id.editText6);
edit6 = (EditText) findViewById(R.id.editText7);
textViewSub2 = (TextView) findViewById(R.id.TextViewsub2);
/*Final Total TextView variable*/
textViewResult = (TextView) findViewById(R.id.textView_result);
//use TextWatcher for edit1 in First Row Col1
edit1.addTextChangedListener(new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
//textViewResult.setText(addNumbers());
}
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
//use TextWatcher for first First Row Col2
edit2.addTextChangedListener(new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
//textViewResult.setText(addNumbers());
}
});
//use TextWatcher for first First Row Col3
edit3.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable editable) {
textViewResult.setText(addNumbers());
}
});
}
//Define method addString()
private String addNumbers() {
//declaring variables
int number1, number2;
double num1, num2;
double d1, d2;
double da1, da2;
Double orderTotal1 = null, orderTotal2 = null;
Double ordTot1 = null, ordTot2 = null;
DecimalFormat df = new DecimalFormat("0.00##");
//For First Row
/*if only the first and second edittext fields in First Row is filled*/
if ((edit1.getText().toString() != "" && edit1.getText().length() > 0) && (edit2.getText().toString() != "" && edit2.getText().length() > 0)) {
num1 = Double.parseDouble((edit1.getText().toString()));
number1 = Integer.parseInt(edit2.getText().toString());
ordTot1 = num1 * number1;
textViewSub1.setText(df.format(ordTot1));
/*else if the first,secondn third (all) edittext fields in First Row is filled*/
} else if ((edit1.getText().toString() != "" && edit1.getText().length() > 0) && (edit2.getText().toString() != "" && edit2.getText().length() > 0) && (edit3.getText().toString() != "" && edit3.getText().length() > 0)) {
num1 = Double.parseDouble((edit1.getText().toString()));
number1 = Integer.parseInt(edit2.getText().toString());
d1 = Double.parseDouble(edit3.getText().toString());
da1 = 100 - d1;
orderTotal1 = ((da1 * number1) * num1) / 100;
textViewSub1.setText(df.format(orderTotal1));
} else {
number1 = (int) 0.00;
num1 = 0.00;
da1 = 0.00;
}
//For the Second Row
/*if only the first and second edittext fields in Second Row is filled*/
if ((edit4.getText().toString() != "" && edit4.getText().length() > 0) && (edit5.getText().toString() != "" && edit5.getText().length() > 0)) {
num2 = Double.parseDouble((edit4.getText().toString()));
number2 = Integer.parseInt(edit5.getText().toString());
ordTot2 = num2 * number2;
textViewSub2.setText(df.format(ordTot2));
/*else if the first,secondn third (all) edittext fields in Second Row is filled*/
} else if ((edit4.getText().toString() != "" && edit4.getText().length() > 0) && (edit5.getText().toString() != "" && edit5.getText().length() > 0) && (edit6.getText().toString() != "" && edit6.getText().length() > 0)) {
num2 = Double.parseDouble((edit1.getText().toString()));
number2 = Integer.parseInt(edit2.getText().toString());
d2 = Double.parseDouble(edit3.getText().toString());
da2 = 100 - d2;
orderTotal2 = ((da2 * number2) * num2) / 100;
textViewSub2.setText(df.format(orderTotal2));
} else {
number2 = (int) 0.00;
num2 = 0.00;
da2 = 0.00;
}
//return statement
return df.format((orderTotal1) + (orderTotal2));
}
}
最佳答案
希望这对您有所帮助。
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_add_two);
/*First row variables*/
edit1 = (EditText) findViewById(R.id.editText1);
edit2 = (EditText) findViewById(R.id.editText2);
edit3 = (EditText) findViewById(R.id.editText3);
textViewSub1 = (TextView) findViewById(R.id.TextViewsub1);
/*Second row variables*/
edit4 = (EditText) findViewById(R.id.editText5);
edit5 = (EditText) findViewById(R.id.editText6);
edit6 = (EditText) findViewById(R.id.editText7);
textViewSub2 = (TextView) findViewById(R.id.TextViewsub2);
/*Final Total TextView variable*/
textViewResult = (TextView) findViewById(R.id.textView_result);
edit1.addTextChangedListener(new LashCustomTextWatcher());
edit2.addTextChangedListener(new LashCustomTextWatcher());
edit3.addTextChangedListener(new LashCustomTextWatcher());
edit4.addTextChangedListener(new LashCustomTextWatcher());
edit5.addTextChangedListener(new LashCustomTextWatcher());
edit6.addTextChangedListener(new LashCustomTextWatcher());
}
public class LashCustomTextWatcher implements TextWatcher{
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
textViewResult.setText(lashCalculate());
}
@Override
public void afterTextChanged(Editable editable) {
}
}
public String lashCalculate(){
//declaring variables
double row1_value = 0;
double row2_value = 0;
DecimalFormat df = new DecimalFormat("0.00##");
//calculate first row
if (!edit1.getText().toString().equals("") && !edit2.getText().toString().equals("")){
double num1 = Double.parseDouble((edit1.getText().toString()));
double num2 = Double.parseDouble((edit2.getText().toString()));
row1_value = num1*num2;
double num3 = 0;
if (!edit3.getText().toString().equals("")){
num3 = Double.parseDouble((edit3.getText().toString()));
row1_value = (((100 - num3) * num2) * num1)/100;
}
textViewSub1.setText(df.format(row1_value));
}
//calculate second row
if (!edit4.getText().toString().equals("") && !edit5.getText().toString().equals("")){
double num4 = Double.parseDouble((edit4.getText().toString()));
double num5 = Double.parseDouble((edit5.getText().toString()));
row2_value = num4*num5;
double num6 = 0;
if (!edit6.getText().toString().equals("")){
num6 = Double.parseDouble((edit6.getText().toString()));
row2_value = (((100 - num6) * num5) * num4)/100;
}
textViewSub2.setText(df.format(row2_value));
}
return df.format(row1_value + row2_value);
}
关于android - 使用具有多个用户输入值的 Android TextWatcher 并更新这些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46167241/
这是代码片段。 请说出这种用小内存存储大数据的算法是什么。 public static void main(String[] args) { long longValue = 21474836
所以我使用 imap 从 gmail 和 outlook 接收电子邮件。 Gmail 像这样编码 =?UTF-8?B?UmU6IM69zq3OvyDOtc68zrHOuc67IG5ldyBlbWFpb
很久以前就学会了 C 代码;想用 Scheme 尝试一些新的和不同的东西。我正在尝试制作一个接受两个参数并返回两者中较大者的过程,例如 (define (larger x y) (if (> x
Azure 恢复服务保管库有两个备份配置选项 - LRS 与 GRS 这是一个有关 Azure 恢复服务保管库的问题。 当其驻留区域发生故障时,如何处理启用异地冗余的恢复服务保管库?如果未为恢复服务启
说,我有以下实体: @Entity public class A { @Id @GeneratedValue private Long id; @Embedded private
我有下一个问题。 我有下一个标准: criteria.add(Restrictions.in("entity.otherEntity", getOtherEntitiesList())); 如果我的
如果这是任何类型的重复,我会提前申请,但我找不到任何可以解决我的具体问题的内容。 这是我的程序: import java.util.Random; public class CarnivalGame{
我目前正在使用golang创建一个聚合管道,在其中使用“$ or”运算符查询文档。 结果是一堆需要分组的未分组文档,这样我就可以进入下一阶段,找到两个数据集之间的交集。 然后将其用于在单独的集合中进行
是否可以在正则表达式中创建 OR 条件。 我正在尝试查找包含此类模式的文件名列表的匹配项 第一个案例 xxxxx-hello.file 或者案例二 xxxx-hello-unasigned.file
该程序只是在用户输入行数时创建菱形的形状,因此它有 6 个 for 循环; 3 个循环创建第一个三角形,3 个循环创建另一个三角形,通过这 2 个三角形和 6 个循环,我们得到了一个菱形,这是整个程序
我有一个像这样的查询字符串 www.google.com?Department=Education & Finance&Department=Health 我有这些 li 标签,它们的查询字符串是这样
我有一个带有静态构造函数的类,我用它来读取 app.config 值。如何使用不同的配置值对类进行单元测试。我正在考虑在不同的应用程序域中运行每个测试,这样我就可以为每个测试执行静态构造函数 - 但我
我正在寻找一个可以容纳多个键的容器,如果我为其中一个键值输入保留值(例如 0),它会被视为“或”搜索。 map, int > myContainer; myContainer.insert(make_
我正在为 Web 应用程序创建数据库,并正在寻找一些建议来对可能具有多种类型的单个实体进行建模,每种类型具有不同的属性。 作为示例,假设我想为“数据源”对象创建一个关系模型。所有数据源都会有一些共享属
(1) =>CREATE TABLE T1(id BIGSERIAL PRIMARY KEY, name TEXT); CREATE TABLE (2) =>INSERT INTO T1 (name)
我不确定在使用别名时如何解决不明确的列引用。 假设有两个表,a 和 b,它们都有一个 name 列。如果我加入这两个表并为结果添加别名,我不知道如何为这两个表引用 name 列。我已经尝试了一些变体,
我的查询是: select * from table where id IN (1,5,4,3,2) 我想要的与这个顺序完全相同,不是从1...5,而是从1,5,4,3,2。我怎样才能做到这一点? 最
我正在使用 C# 代码执行动态生成的 MySQL 查询。抛出异常: CREATE TABLE dump ("@employee_OID" VARCHAR(50)); "{"You have an er
我有日期 2016-03-30T23:59:59.000000+0000。我可以知道它的格式是什么吗?因为如果我使用 yyyy-MM-dd'T'HH:mm:ss.SSS,它会抛出异常 最佳答案 Sim
我有一个示例模式,它的 SQL Fiddle 如下: http://sqlfiddle.com/#!2/6816b/2 这个 fiddle 只是根据 where 子句中的条件查询示例数据库,如下所示:
我是一名优秀的程序员,十分优秀!