0

私のアプリケーションは機能以下のようにしていますAndroid:Android ListViewでこのような操作を実装する方法は?

See Image

私は、カスタムアダプタで値を設定するために行っています。今は別のデータを追加したり、データを表示したり、次のデータに移動したり、前のデータに戻したりするような機能を実装したいと考えています。そのすべての機能では、青の値だけを変更する必要があります。 (つまり、コード内のorderStatusです)。 1つ左の値(orderName())は同じままにする必要があります。その後、それを実装する方法は?

新しいデータを追加する場合は、そのデータをレポートに表示するために一時的に保存する必要があります。私のアプリケーションで

iはコードの下などのデータを初めて追加するつもりです:

getOrder機能をORDERNAMEとオーダーステータスの値を設定します。

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(); 

だから私はそのためのロジックを与えるか、その機能を実装するために、この中で私を助けることができるいくつかのコードを与えることを助けてくださいます。おかげさまで

答えて

1

あなたの質問

に基づいて、私は、カスタムアダプタで値を設定するために行っています。今は に別のデータを追加し、データを表示して を削除し、次のデータに移動して前のデータに戻すなどの機能を実装したいと考えています。すべてのことで、 機能はブルー値のみ変更する必要があります。 (コード内の orderStatusです)。 1つ左の値(orderName())は、 のままです。その後、それを実装する方法は?ここで

は、いくつかの手順で私の答えであり、あなたがVAR「A」であなたのリストの値を渡していると仮定:

1.あなたはリストのあなたのcustom adapterBaseAdapterを拡張する必要があります。

2.Aにあなたの初期値を設定し、adapterset it to the listviewにそれを渡します。

今あなたがリストに新しい値を反映します add it in your var Acall the notifyDataSetChanged()その後、いくつかのより多くの値を追加したい場合は

3.

4.あなたは次の値を表示したい場合は、その後もAで適切な値を設定し、notifyDataSetChanged()を呼び出します。

5.あなたがあなたのリストにsetOnItemClickListener()を削除し、クリック時にAから値を削除し、notifyDataSetChanged()を呼び出したい場合。

注:リストの値を保存するには、SQLiteを使用します。このチュートリアルはlisviewに従うことができます。

+0

私は値をデータベースに保存したくありません。私はなぜすべての価値が欲しいのかを報告するためにすべての値を見るつもりです。 。 –

+0

値を保存しない場合は、保存せずに、レポートのすべての値を自分で確認してください。 –

+0

ok。だから私はそれを実装するためにArrayListまたはHashMapを使用する必要がありますか? –

関連する問題