我的应用程序具有以下功能:
我已完成使用自定义适配器设置值。但现在我想实现功能,如添加另一个数据,删除显示数据,转到下一个数据,然后回到以前的数据。在所有功能中,只应更改蓝色值。 (这是代码中的orderStatus)。 Left One Value(orderName())应保持不变。那怎么实现呢?
如果我要添加新数据,那么应该临时存储,因为我想显示要报告的数据。
在我的应用程序中,我将首次添加数据AS,如下面的代码:
getOrder函数用于设置OrderName和OrderStatus的值。
public void getOrders(){
try{
// if(employee)
// {
System.out.println("You are in Employee");
m_orders = new ArrayList<Order>();
payListForEmployee = new String[] {"Tax Code","Pay period Begin","Pay Frequency","Salary/Wage per pay",
"Net or Gross Amount","KS Employee deduction","KS Employee contributions","Child Support deduction","Payroll giving donation"};
Order o[]=new Order[payListForEmployee.length];
System.out.println("The Length is: "+payListForEmployee.length);
for (int i = 0; i < payListForEmployee.length; i++)
{
o[i]=new Order();
o[i].setOrderName(payListForEmployee[i]);
//myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
// for TAXCODE
if(i==0) {
taxCodeValue = PAYEEmployeeDetail.taxCodeFinalValue;
if((taxCodeValue==null)) {
taxCodeValue = "Please select";
}
o[i].setOrderStatus(taxCodeValue);
//System.out.println("The Value is: "+o[i].getOrderStatus());
}
// for Pay Period Frequency
if(i==1) {
//payPeriodValue = myPrefs.getString("payperiod", "12 09 2011");
payPeriodValue = PAYEEmployeeDetail.payPeriodFinalValue;
if((payPeriodValue==null)) {
payPeriodValue = "--/--/----";
}
o[i].setOrderStatus(payPeriodValue);
//System.out.println("The Value is: "+o[i].getOrderStatus());
}
// for Pay frequency
if(i==2) {
//payFrequencyValue = myPrefs.getString("payfrequency", "Weekly");
payFrequencyValue = PAYEEmployeeDetail.payFrequencyFinalValue;
if((payFrequencyValue==null)) {
payFrequencyValue = "Please select";
}
o[i].setOrderStatus(payFrequencyValue);
//System.out.println("The Value is: "+o[i].getOrderStatus());
}
// for salary / wage
if(i==3) {
salaryWageValue = PAYEEmployeeDetail.salaryWageFinalValue;
if((salaryWageValue==null)||(salaryWageValue.equals(""))) {
salaryWageValue = "$0";
}
else{
salaryWageValue = "$"+salaryWageValue;
}
o[i].setOrderStatus(salaryWageValue);
//System.out.println("The Value is: "+o[i].getOrderStatus());
}
// For Gross / Net
if(i==4) {
o[i].setOrderStatus("Gross");
//System.out.println("The Value is: "+o[i].getOrderStatus());
}
// for KS Employee Deduction
if(i==5) {
employeeDeductionValue = PAYEEmployeeDetail.employeeDeductionFinalValue;
if((employeeDeductionValue==null)||(employeeDeductionValue.equals(""))) {
employeeDeductionValue = "0%";
}
o[i].setOrderStatus(employeeDeductionValue);
//System.out.println("The Value is: "+o[i].getOrderStatus());
}
// for KS Employee Contribution
if(i==6) {
employeeContributionValue = PAYEEmployeeDetail.employeeContributionFinalValue;
if((employeeContributionValue==null)||(employeeContributionValue.equals(""))) {
employeeContributionValue = "0%";
}
else{
employeeContributionValue = employeeContributionValue+"%";
}
o[i].setOrderStatus(employeeContributionValue);
//System.out.println("The Value is: "+o[i].getOrderStatus());
}
// for Child Support Deduction
if(i==7) {
childSupportDeductionValue = PAYEEmployeeDetail.childSupportDeductionFinalValue;
if((childSupportDeductionValue==null)||(childSupportDeductionValue.equals(""))) {
childSupportDeductionValue = "$0";
}
else{
childSupportDeductionValue = "$"+childSupportDeductionValue;
}
o[i].setOrderStatus(childSupportDeductionValue);
//System.out.println("The Value is: "+o[i].getOrderStatus());
}
// for Payroll giving donation
if(i==8) {
payrollDonationValue = PAYEEmployeeDetail.payrollDonationFinalValue;
if((payrollDonationValue==null)||(payrollDonationValue.equals(""))) {
payrollDonationValue = "$0";
}
else{
payrollDonationValue = "$"+payrollDonationValue;
}
o[i].setOrderStatus(payrollDonationValue);
//System.out.println("The Value is: "+o[i].getOrderStatus());
}
m_orders.add(o[i]);
//lv.invalidate();
// System.out.println("==> TaXCode Value: "+PAYEEmployeeDetail.taxCodeFinalValue);
// System.out.println("==> PAyPeriod Value: "+PAYEEmployeeDetail.payPeriodFinalValue);
// System.out.println("==> PayFrequency Value: "+PAYEEmployeeDetail.payFrequencyFinalValue);
// System.out.println("==> Salary/Wage Value: "+PAYEEmployeeDetail.salaryWageFinalValue);
// System.out.println("==> Gross/Net Value "+"STATIC VALUE = GROSS");
// System.out.println("==> Employee Deduction Value "+PAYEEmployeeDetail.employeeDeductionFinalValue);
// System.out.println("==> Employee Contribution Value "+PAYEEmployeeDetail.employeeContributionFinalValue);
// System.out.println("==> Child Support Deduction Value "+PAYEEmployeeDetail.childSupportDeductionFinalValue);
// System.out.println("==> PayRoll Donation Value "+PAYEEmployeeDetail.payrollDonationFinalValue);
//
}
// }
// else
// {
// System.out.println("You Are in Employer");
// m_orders = new ArrayList<Order>();
//
// payListForEmployer = new String[] {"Tax Code","Pay period Begin","Pay Frequency","Salary/Wage per pay",
// "Net or Gross Amount","KiwiSaver Member","Employee Deduction","Employee Contributions",
// "Complying Fund Member","Fund Contribution","ESCT Tax Rate","Child Support Deduction","Payroll giving donation"};
//
// System.out.println("The Length is: "+payListForEmployer.length);
//
// Order o[]=new Order[payListForEmployer.length];
// for (int i = 0; i < payListForEmployer.length; i++)
// {
// o[i]=new Order();
// o[i].setOrderName(payListForEmployer[i]);
// o[i].setOrderStatus("Pending");
// m_orders.add(o[i]);
// }
// }
Thread.sleep(100);
Log.i("ARRAY", ""+ m_orders.size());
} catch (Exception e) {
e.printStackTrace();
}
runOnUiThread(returnRes);
}
private Runnable returnRes = new Runnable() {
@Override
public void run() {
if(m_orders != null && m_orders.size() > 0){
m_adapter.notifyDataSetChanged();
for(int i=0;i<m_orders.size();i++)
m_adapter.add(m_orders.get(i));
}
// m_ProgressDialog.dismiss();
m_adapter.notifyDataSetChanged();
}
};
创建和调用这样的线程:
viewOrders = new Runnable(){
@Override
public void run() {
getOrders();
}
};
thread = new Thread(null, viewOrders, "MagentoBackground");
thread.start();
所以请帮助我为此提供逻辑,或者提供一些可以帮助我实现该功能的代码。 感谢。
答案 0 :(得分:1)
根据您的问题
我已完成使用自定义适配器设置值。但现在我想要 实现像添加其他数据一样的功能,删除 显示数据,转到下一个数据并返回到以前的数据。在所有这一切 功能只应更改蓝色值。 (那就是 codeStatus代码)。 Left One Value(orderName())应该保留 相同。那怎么实现呢?
以下是我在几个步骤中的答案,并假设您在var'A'中传递列表值:
1。您应该在列表的BaseAdapter
中展开custom adapter
。
2。将您的初始值设置为A
并将其传递给adapter
和set it to the listview
。
3。现在,如果您想添加更多值,那么add it in your var A
和call the
notifyDataSetChanged()
会将新值反映到列表中。
4. 如果您想显示下一个值,那么还要在A中设置相应的值并调用notifyDataSetChanged()
。
5. 如果您要将setOnItemClickListener()
删除到列表中,点击后从A
移除值并调用notifyDataSetChanged()
。
注意:要保存列表值,您可以使用SQLite。您可以通过lisview关注本教程。