更改Android应用程序的XML布局是否会影响其行为?
我的Android应用程序运行得很好,直到我用滚动视图和子容器对XML布局进行了更改,线性布局下有许多控件。此特定布局不再运行,并导致应用程序停止工作。还有一次IDE说标签在Android资源中不是有效的元素。但是,当我更新IDE时,它被修复了。但现在,这种带有计算的特定布局不起作用。这个问题的解决方案是什么。我真的需要尽快完成这个应用程序。|只有这个布局不起作用 我计划再次创建一个新项目,然后复制粘贴XML布局,这能解决我的问题吗?除此之外,这个布局以前正常工作的所有备份文件都不再工作了。这件事让我很难受 我正在使用IntellijLeda社区版IDE。任何帮助都将不胜感激! 以下是XML:更改Android应用程序的XML布局是否会影响其行为?,android,xml,layout,intellij-idea,android-linearlayout,Android,Xml,Layout,Intellij Idea,Android Linearlayout,我的Android应用程序运行得很好,直到我用滚动视图和子容器对XML布局进行了更改,线性布局下有许多控件。此特定布局不再运行,并导致应用程序停止工作。还有一次IDE说标签在Android资源中不是有效的元素。但是,当我更新IDE时,它被修复了。但现在,这种带有计算的特定布局不起作用。这个问题的解决方案是什么。我真的需要尽快完成这个应用程序。|只有这个布局不起作用 我计划再次创建一个新项目,然后复制粘贴XML布局,这能解决我的问题吗?除此之外,这个布局以前正常工作的所有备份文件都不再工作了。这件
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" android:background="#ffffff">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:layout_width="30dp" android:layout_height="30dp"
android:id="@+id/btn_home_monthly" android:background="@drawable/home" android:textColor="#ffffff"
android:layout_gravity="right"/>
<Button android:layout_width="30dp" android:layout_height="30dp"
android:id="@+id/btn_warning_from_monthlycomputation"
android:background="@drawable/warn" android:layout_gravity="right"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Input your Monthly Net Salary:"
android:id="@+id/textView" android:layout_gravity="center"
android:textColor="@android:color/black" android:textStyle="bold"/>
<EditText
android:layout_width="130dp"
android:layout_height="wrap_content"
android:id="@+id/et_net_monthly" android:layout_gravity="center" android:inputType="numberDecimal|numberSigned">
<requestFocus/>
</EditText>
<Button android:layout_width="150dp" android:layout_height="40dp" android:text="Compute"
android:id="@+id/btn_compute_from_monthly" android:background="@drawable/black_btn" android:textColor="#ffffff"
android:layout_gravity="center"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Tax Due:" android:id="@+id/textView1"
android:layout_gravity="center" android:textColor="@android:color/black" android:textStyle="bold"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txt_taxdue" android:textColor="#ff0006" android:layout_gravity="center"
android:textSize="20dp"
android:textStyle="bold"/>
<Button android:layout_width="150dp" android:layout_height="40dp" android:text="Show Breakdown"
android:id="@+id/btn_showbreakdown" android:background="@drawable/black_btn"
android:textColor="#ffffff" android:layout_gravity="center" android:visibility="invisible"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txt_1" android:layout_gravity="left|center_vertical" android:visibility="invisible"
android:textColor="@android:color/black"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txt_2"
android:layout_gravity="left|center_vertical" android:visibility="invisible"
android:textColor="@android:color/black"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txt_3"
android:layout_gravity="left|center_vertical" android:visibility="invisible"
android:textColor="@android:color/black"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txt_4"
android:layout_gravity="left|center_vertical" android:visibility="invisible"
android:textColor="@android:color/black"/>
<Button android:layout_width="150dp" android:layout_height="40dp" android:text="Save As Text File"
android:id="@+id/btn_save" android:background="@drawable/black_btn" android:textColor="#ffffff"
android:layout_gravity="center" android:visibility="invisible"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txt_filename"
android:layout_gravity="left|center_vertical" android:visibility="invisible"
android:textColor="@android:color/black"
android:text="Name for File:"/>
<EditText
android:layout_width="130dp"
android:layout_height="wrap_content"
android:id="@+id/et_txtname" android:layout_gravity="center" android:inputType="textFilter"
android:visibility="invisible">
<requestFocus/>
</EditText>
<Button android:layout_width="150dp" android:layout_height="40dp"
android:id="@+id/btn_confirm" android:background="@drawable/save"
android:layout_gravity="center" android:visibility="invisible"/>
</LinearLayout>
</ScrollView>
这是它的类别:
public class MonthlyComputation extends MyActivity
{
private String civil_status;
String ns, td, r, e, s, to, wr, n, txtname, stat;
String datetime = DateFormat.getDateTimeInstance().format(new Date());
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.monthlycomputation);
Bundle extras = getIntent().getExtras();
if(extras != null)
{
civil_status = extras.getString("user_status");
}
Button btn_compute = (Button) findViewById(R.id.btn_compute_from_monthly);
Button btn_warning = (Button) findViewById(R.id.btn_warning_from_monthlycomputation);
final Button btn_show = (Button) findViewById(R.id.btn_showbreakdown);
final Button btn_save = (Button) findViewById(R.id.btn_save);
final Button btn_confirm = (Button) findViewById(R.id.btn_confirm);
final EditText et_txtfile = (EditText) findViewById(R.id.et_txtname);
final TextView txt_name = (EditText) findViewById(R.id.txt_filename);
final Button btn_home = (Button) findViewById(R.id.btn_home_monthly);
btn_home.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent i = new Intent(getApplicationContext(), MyActivity.class);
startActivity(i);
}
});
/* SAVING TEXT FILE */
btn_confirm.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
txtname = et_txtfile.getText().toString();
/* Getting the status */
if ("SME".equals(civil_status))
{
stat = "Single / Married with 0 Dependent";
}
else if ("SM1".equals(civil_status))
{
stat = "Single / Married with 1 Dependent";
}
else if ("SM2".equals(civil_status))
{
stat = "Single / Married with 2 Dependents";
}
else if ("SM3".equals(civil_status))
{
stat = "Single / Married with 3 Dependents";
}
else if ("SM4".equals(civil_status))
{
stat = "Single / Married with 4 Dependents";
}
try
{
File f1=new File("/sdcard/download/" + txtname + ".txt");
BufferedWriter out = new BufferedWriter(new FileWriter(f1,true));
out.write("\n\nCreated On: " + datetime + " | Monthly Computation | " + stat + "\n\n"
+ "Net Salary: " + n + "\nTax Due: " + td + "\n\nBreakdown:\n\n"
+ "> Net Salary (" + n + ") - Lower Limit (" + s + ") = " + to +
"\n" + "> " + to + " * Tax Rate (" + r + ") = " + wr + "\n"
+ "> Exemption (" + e + ") + " + wr + " = " + td + "\n"
+ "> Total Tax Due: " + td + "\n");
out.close();
Toast toast = Toast.makeText(getApplicationContext(), "Your file " + txtname + " has been saved!", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
toast.show();
Intent i = new Intent(getApplicationContext(), OpenCalculator.class);
startActivity(i);
} catch (IOException ioe)
{
Toast toast = Toast.makeText(getApplicationContext(), "Sorry, your device has no SD card inserted, ITax saves files only on SD cards OR you don't have the destination folder, \"download\"", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
toast.show();
ioe.printStackTrace()
;}
}
});
btn_warning.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent i = new Intent(getApplicationContext(), SalaryNoteMonthly.class);
startActivity(i);
}
});
btn_compute.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
final EditText net_salary = (EditText) findViewById(R.id.et_net_monthly);
final TextView tax_due = (TextView) findViewById(R.id.txt_taxdue);
double netSalary, taxDue, rate = 0, exemption = 0, subtrahend = 0, withRate, total;
ns = net_salary.getText().toString();
/* checks if textbox is blank, then make it to 0 */
if(ns.equals(""))
{
netSalary = 0;
Toast toast = Toast.makeText(getApplicationContext(), "Net Salary is blank.", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
toast.show();
}
else
{
netSalary = Double.parseDouble(ns);
}
/* Converting Net Salary to String with 2 decimal places */
n = String.format("%.2f", netSalary);
/* Single or Married with no dependent */
if ("SME".equals(civil_status)) {
if (netSalary >= 4167 && netSalary < 5000) {
rate = 0.05;
exemption = 0.00;
subtrahend = 4167;
} else if ((netSalary >= 5000) && (netSalary < 6667)) {
rate = 0.1;
exemption = 41.67;
subtrahend = 5000;
} else if ((netSalary >= 6667) && (netSalary < 10000)) {
rate = 0.15;
exemption = 208.33;
subtrahend = 6667;
} else if ((netSalary >= 10000) && (netSalary < 15833)) {
rate = 0.20;
exemption = 708.33;
subtrahend = 10000;
} else if ((netSalary >= 15833) && (netSalary < 25000)) {
rate = 0.25;
exemption = 1875.00;
subtrahend = 15833;
} else if ((netSalary >= 25000) && (netSalary < 45833)) {
rate = 0.30;
exemption = 4166.67;
subtrahend = 25000;
} else if (netSalary >= 45833) {
rate = 0.32;
exemption = 10416.67;
subtrahend = 45833;
}
}
/* Single or Married with 1 Dependent */
if ("SM1".equals(civil_status)) {
if ((netSalary >= 6250) && (netSalary < 7083)) {
rate = 0.05;
exemption = 0.00;
subtrahend = 6250;
} else if ((netSalary >= 7083) && (netSalary < 8750)) {
rate = 0.1;
exemption = 41.67;
subtrahend = 7083;
} else if ((netSalary >= 8750) && (netSalary < 12083)) {
rate = 0.15;
exemption = 208.33;
subtrahend = 8750;
} else if ((netSalary >= 12083) && (netSalary < 17917)) {
rate = 0.20;
exemption = 708.33;
subtrahend = 12083;
} else if ((netSalary >= 17917) && (netSalary < 27083)) {
rate = 0.25;
exemption = 1875.00;
subtrahend = 17917;
} else if ((netSalary >= 27083) && (netSalary < 47917)) {
rate = 0.30;
exemption = 4166.67;
subtrahend = 27083;
} else if (netSalary >= 47917) {
rate = 0.32;
exemption = 10416.67;
subtrahend = 47917;
}
}
/* Single or Married with 2 Dependents */
if ("SM2".equals(civil_status)) {
if ((netSalary >= 8333) && (netSalary < 9167)) {
rate = 0.05;
exemption = 0.00;
subtrahend = 8333;
} else if ((netSalary >= 9167) && (netSalary < 10833)) {
rate = 0.1;
exemption = 41.67;
subtrahend = 9167;
} else if ((netSalary >= 10833) && (netSalary < 14167)) {
rate = 0.15;
exemption = 208.33;
subtrahend = 10833;
} else if ((netSalary >= 14167) && (netSalary < 20000)) {
rate = 0.20;
exemption = 708.33;
subtrahend = 14167;
} else if ((netSalary > 20000) && (netSalary < 29167)) {
rate = 0.25;
exemption = 1875.00;
subtrahend = 20000;
} else if ((netSalary >= 29167) && (netSalary < 50000)) {
rate = 0.30;
exemption = 4166.67;
subtrahend = 29167;
} else if (netSalary >= 50000) {
rate = 0.32;
exemption = 10416.67;
subtrahend = 50000;
}
}
/* Single or Married with 3 Dependents */
if ("SM3".equals(civil_status)) {
if ((netSalary >= 10417) && (netSalary < 11250)) {
rate = 0.05;
exemption = 0.00;
subtrahend = 10417;
} else if ((netSalary >= 11250) && (netSalary < 12917)) {
rate = 0.1;
exemption = 41.67;
subtrahend = 11250;
} else if ((netSalary >= 12917) && (netSalary < 16250)) {
rate = 0.15;
exemption = 208.33;
subtrahend = 12917;
} else if ((netSalary >= 16250) && (netSalary < 22083)) {
rate = 0.20;
exemption = 708.33;
subtrahend = 16250;
} else if ((netSalary >= 22083) && (netSalary < 31250)) {
rate = 0.25;
exemption = 1875.00;
subtrahend = 22083;
} else if ((netSalary >= 31250) && (netSalary < 52083)) {
rate = 0.30;
exemption = 4166.67;
subtrahend = 31250;
} else if (netSalary >= 52083) {
rate = 0.32;
exemption = 10416.67;
subtrahend = 52083;
}
}
/* Single or Married with 4 Dependents */
if ("SM4".equals(civil_status)) {
if ((netSalary >= 12500) && (netSalary < 13333)) {
rate = 0.05;
exemption = 0.00;
subtrahend = 12500;
} else if ((netSalary >= 13333) && (netSalary < 15000)) {
rate = 0.1;
exemption = 41.67;
subtrahend = 13333;
} else if ((netSalary >= 15000) && (netSalary < 18333)) {
rate = 0.15;
exemption = 208.33;
subtrahend = 15000;
} else if ((netSalary >= 18333) && (netSalary < 24167)) {
rate = 0.20;
exemption = 708.33;
subtrahend = 18383;
} else if ((netSalary >= 24167) && (netSalary < 33333)) {
rate = 0.25;
exemption = 1875.00;
subtrahend = 24167;
} else if ((netSalary >= 33333) && (netSalary < 54167)) {
rate = 0.30;
exemption = 4166.67;
subtrahend = 33333;
} else if ((netSalary >= 54167)) {
rate = 0.32;
exemption = 10416.67;
subtrahend = 54167;
}
}
total = netSalary - subtrahend;
withRate = total * rate;
taxDue = withRate + exemption;
td = String.format("%.2f",taxDue);
e = String.format("%.2f", exemption);
s = String.format("%.2f", subtrahend);
r = String.format("%.2f", rate);
to = String.format("%.2f", total);
wr = String.format("%.2f", withRate);
/*Place the value in text view*/
tax_due.setText("Php " + td);
/*BREAK DOWN*/
final TextView tax_1 = (TextView) findViewById(R.id.txt_1);
final TextView tax_2 = (TextView) findViewById(R.id.txt_2);
final TextView tax_3 = (TextView) findViewById(R.id.txt_3);
final TextView tax_4 = (TextView) findViewById(R.id.txt_4);
tax_1.setText("> Net Salary (" + n + ") - Lower Limit (" + s + ") = " + to );
tax_2.setText("> " + to + " * Tax Rate (" + r + ") = " + wr);
tax_3.setText("> Exemption (" + e + ") + " + wr + " = " + td);
tax_4.setText("> Total Tax Due: " + td);
btn_show.setVisibility(1);
btn_save.setVisibility(1);
}
});
btn_save.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
btn_confirm.setVisibility(1);
et_txtfile.setVisibility(1);
txt_name.setVisibility(1);
}
});
btn_show.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
final TextView tax_1 = (TextView) findViewById(R.id.txt_1);
final TextView tax_2 = (TextView) findViewById(R.id.txt_2);
final TextView tax_3 = (TextView) findViewById(R.id.txt_3);
final TextView tax_4 = (TextView) findViewById(R.id.txt_4);
tax_1.setVisibility(1);
tax_2.setVisibility(1);
tax_3.setVisibility(1);
tax_4.setVisibility(1);
}
});
}
@Override
public void onBackPressed()
{
Intent i = new Intent(getApplicationContext(), OpenChoices.class);
startActivity(i);
}
}
公共类每月计算扩展MyActivity
{
私有字符串民事状态;
字符串ns、td、r、e、s、to、wr、n、txtname、stat;
字符串datetime=DateFormat.getDateTimeInstance().format(新日期());
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.monthlycomputation);
Bundle extras=getIntent().getExtras();
如果(附加值!=null)
{
civil_status=extras.getString(“用户_状态”);
}
按钮btn\u compute=(按钮)findViewById(R.id.btn\u compute\u from\u monthly);
按钮btn\u警告=(按钮)findViewById(R.id.btn\u警告来自每月计算);
最终按钮btn_show=(按钮)findViewById(R.id.btn_showbreakdown);
最终按钮btn_save=(按钮)findViewById(R.id.btn_save);
最终按钮btn_确认=(按钮)findViewById(R.id.btn_确认);
最终EditText et_txtfile=(EditText)findViewById(R.id.et_txtname);
最终文本视图txt_名称=(EditText)findViewById(R.id.txt_文件名);
最终按钮btn\U home=(按钮)findViewById(R.id.btn\U home\u每月);
btn_home.setOnClickListener(新建按钮.OnClickListener())
{
@凌驾
公共void onClick(视图v)
{
Intent i=新的Intent(getApplicationContext(),MyActivity.class);
星触觉(i);
}
});
/*保存文本文件*/
btn_confirm.setOnClickListener(新建按钮.OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
txtname=et_txtfile.getText().toString();
/*获得地位*/
如果(“中小企业”。等于(公民身份))
{
stat=“单身/与0名家属结婚”;
}
否则,如果(“SM1”。等于(公民身份))
{
stat=“单身/已婚,有1名家属”;
}
否则,如果(“SM2”。等于(公民身份))
{
stat=“单身/已婚,有2名受抚养人”;
}
否则,如果(“SM3”。等于(公民身份))
{
stat=“单身/已婚,有3名受抚养人”;
}
否则,如果(“SM4”。等于(公民身份))
{
stat=“单身/已婚,有4名受抚养人”;
}
尝试
{
文件f1=新文件(“/sdcard/download/”+txtname+”.txt”);
BufferedWriter out=新的BufferedWriter(新的文件写入程序(f1,true));
out.write(“\n\n创建日期:“+datetime+”|每月计算|“+stat+”\n\n”
+净工资:“+n+”\n应付税款:“+td+”\n\n明细:\n\n
+“>净工资(“+n+”)-下限(“+s+””)=“+to”+
“\n”+“>”+至+“*税率(“+r+”””=“+wr+”\n”
+“>豁免(“+e+”+“+wr+”=“+td+”\n”
+“>应付税款总额:“+td+”\n”);
out.close();
Toast Toast=Toast.makeText(getApplicationContext(),“您的文件”+txtname+“已保存!”,Toast.LENGTH\u SHORT);
toast.setGravity(Gravity.TOP | Gravity.LEFT,0,0);
toast.show();
Intent i=newintent(getApplicationContext(),OpenCalculator.class);
星触觉(i);
}捕获(ioe异常ioe)
{
Toast Toast=Toast.makeText(getApplicationContext(),“对不起,您的设备未插入SD卡,ITax仅将文件保存在SD卡上,或者您没有目标文件夹”“下载”“,Toast.LENGTH\u LONG);
toast.setGravity(Gravity.TOP | Gravity.LEFT,0,0);
toast.show();
ioe.printStackTrace()
;}
}
});
btn_warning.setOnClickListener(新建按钮.OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
Intent i=newintent(getApplicationContext(),SalaryNoteMonthly.class);
星触觉(i);
}
});
btn_compute.setOnClickListener(新建按钮.OnClickListener())
{
@凌驾
公共void onClick(视图v)
{
最终EditText净工资=(EditText)findViewById(R.id.et净工资每月);
最终文本视图纳税到期日=(文本视图)findViewById(R.id.txt\u纳税到期日);
双重净税率,应纳税额,税率=0,免税额=0,分税率=0,含税率,合计;
ns=净工资。getText().toString();
/*检查文本框是否为空,然后将其设为0*/
如果(ns.等于(“”)
{
netSalary=0;
Toast Toast=Toast.makeText(getApplicationContext(),“净工资为空”,Toast.LENGTH\u SHORT);
toast.setGravity(Gravity.TOP | Gravity.LEFT,0,0);
吐司
final EditText txt_name = (EditText) findViewById(R.id.txt_filename);