安卓:如何实现这样的操作为Android的ListView?如何实现、Android、ListView

2023-09-07 11:28:39 作者:此人多半有病

我的应用程序有类似下面的功能:

My Application has like below functionality:

我已经尽到与自定义适配器设置的值。但现在我要实现的功能,像添加其他数据,删除数据显示,进入下一个数据,并返回到previous数据。在所有的功能,只有蓝色的值应该是变化的。 (这是在code中的orderStatus)。左边的一个值(ORDERNAME())应保持不变。那么如何实现?

I have Done to set the Values with the custom adapter. but now i want to implement the functionality as like add another data, delete showing data, go to next data and back to previous data. In all that functionality only the Blue Values should be change. (that is the orderStatus in code). Left One Value (orderName()) should remain the same. Then how to implement that ?

如果我加入新的数据,那么应该是临时存储为我想表明中报告的数据。

If i am adding the new data then that should be temporary stored as i want to show that data in to report.

在我的应用我要去添加数据第一次像下面code:

In My Application i am going to add data first time AS like below code:

getOrder函数来设置ORDERNAME和OrderStatus的价值。

getOrder function to set the Value of the OrderName and 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();
        }
};

和创建并调用线程是这样的:

And Creating and calling the thread like this:

 viewOrders = new Runnable(){
        @Override
        public void run() {
            getOrders();
        }
    };

    thread =  new Thread(null, viewOrders, "MagentoBackground");
    thread.start();

所以会请你帮我给逻辑的或提供一些code,可以帮助我在此要实现该功能。谢谢你。

So Will please help me to give logic for that or give some code that can help me in this to implement that functionality. Thanks.

推荐答案

在你的问题的基础上

我已经尽到与自定义适配器设置的值。但现在我想  实现的功能一样添加其他数据,删除  数据显示,进入下一个数据,并返回到previous数据。在所有  功能仅蓝值应改变。 (也就是  orderStatus在code)。左边的一个值(ORDERNAME())应该保持  相同。那么如何实现?

I have Done to set the Values with the custom adapter. but now i want to implement the functionality as like add another data, delete showing data, go to next data and back to previous data. In all that functionality only the Blue Values should be change. (that is the orderStatus in code). Left One Value (orderName()) should remain the same. Then how to implement that ?

下面是我在几步之遥的答案,假设你是通过你的列表值VAR'A':

Here is my answer in few steps and assuming that you are passing your list values in var 'A':

1 您应该在你的自定义适配器列表的扩展 BaseAdapter

1. You should extend BaseAdapter in your custom adapter of the list.

2 设置您的初始值 A ,并把它传递给适配器将其设置到ListView

2. Set your initial values to A and pass it to the adapter and set it to the listview.

3。现在如果你想添加更多的值,那么添加在你的变种A 调用 notifyDataSetChanged()这将反映新值到列表中。

3. Now if you want to add some more values then add it in your var A and call the notifyDataSetChanged() which will reflect your new values to the list.

4。如果你想显示下一个值,然后在还设置了相应的值,并调用 notifyDataSetChanged()

4. If you want to show next values then also set the appropriate values in A and call notifyDataSetChanged().

5 如果您想删除然后 setOnItemClickListener()到您的列表和点击从 A 和呼叫 notifyDataSetChanged()

5. If you want to delete then setOnItemClickListener() to your list and on click remove the values from the A and call notifyDataSetChanged().

注意::要保存列表值,你可以使用SQLite。您可以按照本教程在 lisview 。

Note: To save the list values you can use SQLite. You can follow this tutorial over lisview.

 
精彩推荐