Прямо сейчас я использую ArrayList для моего списка ListView, и в моем приложении есть пользовательский ListView.Как использовать ArrayList для такой реализации? или Если HashMap хорош для него, то как использовать его для такой реализации?
Смотрите изображение ниже:
Теперь я использую этот код для отображения списка и установите значение в ListView:
public void getOrders(){
try{
// if(employer)
// {
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"};
Order o[]=new Order[payListForEmployer.length];
System.out.println("The Length of payListEmployer is: "+payListForEmployer.length);
for (int i = 0; i < payListForEmployer.length; i++)
{
o[i]=new Order();
o[i].setOrderName(payListForEmployer[i]);
// for TAXCODE
if(i==0) {
taxCodeValue = PAYEEmployerDetail.taxCodeFinalValue;
if((taxCodeValue==null)) {
taxCodeValue = "Please select";
}
o[i].setOrderStatus(taxCodeValue);
//System.out.println("The Value is: "+o[i].getOrderStatus());
}
// for Pay Period Begin
if(i==1) {
//payPeriodValue = myPrefs.getString("payperiod", "12 09 2011");
payPeriodValue = PAYEEmployerDetail.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 = PAYEEmployerDetail.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 = PAYEEmployerDetail.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 KiwiSaver Member
if(i==5){
kiwiSaverMemberValue = PAYEEmployerDetail.kiwiSaverMemberFinalValue;
if((kiwiSaverMemberValue==null)||(kiwiSaverMemberValue.equals(""))){
kiwiSaverMemberValue = "No";
}else{
kiwiSaverMemberValue = PAYEEmployerDetail.kiwiSaverMemberFinalValue;
}
o[i].setOrderStatus(kiwiSaverMemberValue);
}
// for KS Employee Deduction
if(i==6) {
employeeDeductionValue = PAYEEmployerDetail.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==7) {
employeeContributionValue = PAYEEmployerDetail.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 Complying Fund Member
if(i==8){
complyingFundMemberValue = PAYEEmployerDetail.complyingFundMemberFinalValue;
if((complyingFundMemberValue==null)||(complyingFundMemberValue.equals(""))){
complyingFundMemberValue = "No";
}else{
complyingFundMemberValue = PAYEEmployerDetail.complyingFundMemberFinalValue;
}
o[i].setOrderStatus(complyingFundMemberValue);
}
// for Fund Contribution
if(i==9){
fundContributionValue = PAYEEmployerDetail.fundContributionFinalValue;
if((fundContributionValue==null)||(fundContributionValue.equals(""))) {
fundContributionValue = "$0";
}
else{
fundContributionValue = "$"+fundContributionValue;
}
o[i].setOrderStatus(fundContributionValue);
}
// for ESCT Tax Rate
if(i==10){
ESCTTaxRateValue = PAYEEmployerDetail.ESCTTaxRateFinalValue;
if((ESCTTaxRateValue==null)||(ESCTTaxRateValue.equals(""))) {
ESCTTaxRateValue = "0%";
}
o[i].setOrderStatus(ESCTTaxRateValue);
}
// for Child Support Deduction
if(i==11) {
childSupportDeductionValue = PAYEEmployerDetail.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==12) {
payrollDonationValue = PAYEEmployerDetail.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: "+PAYEEmployerDetail.taxCodeFinalValue);
// System.out.println("==> PAyPeriod Value: "+PAYEEmployerDetail.payPeriodFinalValue);
// System.out.println("==> PayFrequency Value: "+PAYEEmployerDetail.payFrequencyFinalValue);
// System.out.println("==> Salary/Wage Value: "+PAYEEmployerDetail.salaryWageFinalValue);
// System.out.println("==> Gross/Net Value "+"STATIC VALUE = GROSS");
// System.out.println("==> Employee Deduction Value "+PAYEEmployerDetail.employeeDeductionFinalValue);
// System.out.println("==> Employee Contribution Value "+PAYEEmployerDetail.employeeContributionFinalValue);
// System.out.println("==> Child Support Deduction Value "+PAYEEmployerDetail.childSupportDeductionFinalValue);
// System.out.println("==> PayRoll Donation Value "+PAYEEmployerDetail.payrollDonationFinalValue);
//
}
Thread.sleep(100);
Log.i("ARRAY", ""+ m_orders.size());
} catch (Exception e) {
e.printStackTrace();
}
runOnUiThread(returnRes);
}
viewOrders = new Runnable(){
@Override
public void run() {
getOrders();
}
};
thread = new Thread(null, viewOrders, "MagentoBackground");
thread.start();
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();
}
};
и OrderAdapter, как:
private class OrderAdapter extends ArrayAdapter<Order> {
private ArrayList<Order> items;
public OrderAdapter(Context context, int textViewResourceId, ArrayList<Order> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.paye_list_row, null);
}
Order o = items.get(position);
if (o != null) {
TextView tt = (TextView) v.findViewById(R.id.toptext);
TextView bt = (TextView) v.findViewById(R.id.value);
if (tt != null) {
tt.setText(o.getOrderName()); // Setting the Value here
}
if(bt != null){
bt.setText(o.getOrderStatus()); // Setting the Value here
System.out.println("The "+o.getOrderName()+" Value is: "+o.getOrderStatus());
}
}
return v;
}
}
Существует также один класс Order, где я собираюсь получить и установить значение методом getter setter.
Теперь я хочу реализовать такую вещь для нескольких сотрудников. Пример: прямо сейчас для одного emplpoyee, и если uesr нажмет на кнопку добавления, тогда представьте все значение orderStatus, которое должно быть сохранено. и после этого я должен иметь возможность добавить дополнительную деталь (данные) сотрудника.
Я также хочу обратиться к следующему сотруднику, предшественнику Сотрудника, а также удалить указанного работника.
Так как это возможно с помощью HashMap? или mY-код достаточно хорош для его реализации? Пожалуйста, помогите мне в этом.
Спасибо.
Спасибо. Пожалуйста, помогите мне, как реализовать это для умножения сотрудника. Я имею в виду, что все данные должны храниться. так как я должен использовать эти данные в отчете. И я вообще не хочу использовать DataBase. Я знаю, что это возможно с помощью HashMap и ArrayList этого HashMap. Но я застрял, чтобы реализовать его в Моем коде. Так что мне нужна помощь для этого. –
Без базы данных, как вы хотите хранить данные у своих сотрудников? Как вы хотите сохранить данные между запуском приложения? – WarrenFaith
Я не хочу хранить эти данные так. Я просто хочу, чтобы это хранилище на временном лавеле, как и любая переменная. Просто для целей расчета. –