大家好,
我坚持用这个问题,
我有一个微调和列表视图,点击微调选择特定的数据集,获取列表视图绑定。
我写的代码,但它并不是working.somebody请帮助。我也发送代码。提前感谢。
下面是他类
package com.Android.AVOMyEarnings;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.Android.R;
/*import com.Android.AVOMyBusiness.BusinessDetails;
import com.Android.AVOMyBusiness.Businesssummary;*/
import com.Android.AVOMyEarnings.UserBO;
public class CommissionDetail extends Activity{
private ArrayList<UserBO> mlistuser;
private ListView lvlist;
public String STR;
protected int mPos;
protected String mSelection;
protected ArrayAdapter<CharSequence> mAdapter;
public static final int DEFAULT_POSITION = 2;
public static final String PREFERENCES_FILE = "SpinnerPrefs";
public static final String PROPERTY_DELIMITER = "=";
public static final String POSITION_KEY = "Position";
public static final String SELECTION_KEY = "Selection";
public static final String POSITION_MARKER = POSITION_KEY + PROPERTY_DELIMITER;
public static final String SELECTION_MARKER = SELECTION_KEY + PROPERTY_DELIMITER;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.commissiondetail);
Spinner spinner = (Spinner) findViewById(R.id.spnr_earning);
this.mAdapter = ArrayAdapter.createFromResource(this, R.array.CommissionType, android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(this.mAdapter);
OnItemSelectedListener spinnerListener = new myOnItemSelectedListener(this,this.mAdapter);
spinner.setOnItemSelectedListener(spinnerListener);
mlistuser=getUsers();
lvlist=(ListView) findViewById(R.id.list);
lvlist.setAdapter(new ListAdapter(this,R.id.list,mlistuser));
}
public class myOnItemSelectedListener implements OnItemSelectedListener{
ArrayAdapter<CharSequence> mLocalAdapter;
Activity mLocalContext;
public myOnItemSelectedListener(Activity c, ArrayAdapter<CharSequence> ad) {
this.mLocalContext = c;
this.mLocalAdapter = ad;
}
public void onItemSelected(AdapterView<?> parent, View v, int pos, long row) {
CommissionDetail.this.mPos = pos;
CommissionDetail.this.mSelection = parent.getItemAtPosition(pos).toString();
/*
* Set the value of the text field in the UI
*/
switch(pos){
case 0:{
STR = "SELECT NB.CYCLE,cast(IFNULL(NB.NewBusiness,0) as int) NewBusiness , cast(IFNULL(RN.RENEWAL,0) as int) RENEWAL,cast(IFNULL(CB.CLAWBACK,0) as int )CLAWBACK,cast(IFNULL(( IFNULL(NB.NewBusiness,0) + IFNULL(RN.RENEWAL,0) - IFNULL(CB.CLAWBACK,0)) ,0) as int ) NETCOMMISSION FROM (SELECT strftime('%Y',commissionspaiddate) Cycle, sum(commissionamount) NewBusiness FROM tblcommissionstatus where paymenttype=111 group by strftime('%Y',commissionspaiddate),paymenttype ) NB LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) RENEWAL FROM tblcommissionstatus where paymenttype=113 group by strftime('%Y',commissionspaiddate),Paymenttype) RN ON NB.CYCLE=RN.CYCLE LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) CLAWBACK FROM tblcommissionstatus where paymenttype=115 group by strftime('%Y',commissionspaiddate),Paymenttype) CB ON NB.CYCLE=CB.CYCLE ";
mlistuser=getUsers();
/*Toast.makeText(CommissionDetail.this,
"new row inserted with id = " + pos,
Toast.LENGTH_SHORT).show();*/
break;
}
case 1:{
STR = "SELECT commissionamount as NewBusiness,commissionspaiddate as RENEWAL, paymenttype as CLAWBACK FROM tblcommissionstatus";
mlistuser=getUsers();
/*Toast.makeText(CommissionDetail.this,
"new row inserted with id = " + pos,
Toast.LENGTH_SHORT).show();*/
break;
}
case 2:{
STR = "SELECT NB.CYCLE,cast(IFNULL(NB.NewBusiness,0) as int) NewBusiness , cast(IFNULL(RN.RENEWAL,0) as int) RENEWAL,cast(IFNULL(CB.CLAWBACK,0) as int )CLAWBACK,cast(IFNULL(( IFNULL(NB.NewBusiness,0) + IFNULL(RN.RENEWAL,0) - IFNULL(CB.CLAWBACK,0)) ,0) as int ) NETCOMMISSION FROM (SELECT strftime('%Y',commissionspaiddate) Cycle, sum(commissionamount) NewBusiness FROM tblcommissionstatus where paymenttype=111 group by strftime('%Y',commissionspaiddate),paymenttype ) NB LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) RENEWAL FROM tblcommissionstatus where paymenttype=113 group by strftime('%Y',commissionspaiddate),Paymenttype) RN ON NB.CYCLE=RN.CYCLE LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) CLAWBACK FROM tblcommissionstatus where paymenttype=115 group by strftime('%Y',commissionspaiddate),Paymenttype) CB ON NB.CYCLE=CB.CYCLE ";
mlistuser=getUsers();
/*Toast.makeText(CommissionDetail.this,
"new row inserted with id = " + pos,
Toast.LENGTH_SHORT).show();*/
break;
}
case 3:{
STR = "SELECT NB.CYCLE,cast(IFNULL(NB.NewBusiness,0) as int) NewBusiness , cast(IFNULL(RN.RENEWAL,0) as int) RENEWAL,cast(IFNULL(CB.CLAWBACK,0) as int )CLAWBACK,cast(IFNULL(( IFNULL(NB.NewBusiness,0) + IFNULL(RN.RENEWAL,0) - IFNULL(CB.CLAWBACK,0)) ,0) as int ) NETCOMMISSION FROM (SELECT strftime('%Y',commissionspaiddate) Cycle, sum(commissionamount) NewBusiness FROM tblcommissionstatus where paymenttype=111 group by strftime('%Y',commissionspaiddate),paymenttype ) NB LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) RENEWAL FROM tblcommissionstatus where paymenttype=113 group by strftime('%Y',commissionspaiddate),Paymenttype) RN ON NB.CYCLE=RN.CYCLE LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) CLAWBACK FROM tblcommissionstatus where paymenttype=115 group by strftime('%Y',commissionspaiddate),Paymenttype) CB ON NB.CYCLE=CB.CYCLE ";
mlistuser=getUsers();
/*Toast.makeText(CommissionDetail.this,
"new row inserted with id = " + pos,
Toast.LENGTH_SHORT).show();*/
break;
}
case 4:{
STR = "SELECT NB.CYCLE,cast(IFNULL(NB.NewBusiness,0) as int) NewBusiness , cast(IFNULL(RN.RENEWAL,0) as int) RENEWAL,cast(IFNULL(CB.CLAWBACK,0) as int )CLAWBACK,cast(IFNULL(( IFNULL(NB.NewBusiness,0) + IFNULL(RN.RENEWAL,0) - IFNULL(CB.CLAWBACK,0)) ,0) as int ) NETCOMMISSION FROM (SELECT strftime('%Y',commissionspaiddate) Cycle, sum(commissionamount) NewBusiness FROM tblcommissionstatus where paymenttype=111 group by strftime('%Y',commissionspaiddate),paymenttype ) NB LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) RENEWAL FROM tblcommissionstatus where paymenttype=113 group by strftime('%Y',commissionspaiddate),Paymenttype) RN ON NB.CYCLE=RN.CYCLE LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) CLAWBACK FROM tblcommissionstatus where paymenttype=115 group by strftime('%Y',commissionspaiddate),Paymenttype) CB ON NB.CYCLE=CB.CYCLE ";
mlistuser=getUsers();
/*Toast.makeText(CommissionDetail.this,
"new row inserted with id = " + pos,
Toast.LENGTH_SHORT).show();*/
break;
}
default:
STR = "SELECT NB.CYCLE,cast(IFNULL(NB.NewBusiness,0) as int) NewBusiness , cast(IFNULL(RN.RENEWAL,0) as int) RENEWAL,cast(IFNULL(CB.CLAWBACK,0) as int )CLAWBACK,cast(IFNULL(( IFNULL(NB.NewBusiness,0) + IFNULL(RN.RENEWAL,0) - IFNULL(CB.CLAWBACK,0)) ,0) as int ) NETCOMMISSION FROM (SELECT strftime('%Y',commissionspaiddate) Cycle, sum(commissionamount) NewBusiness FROM tblcommissionstatus where paymenttype=111 group by strftime('%Y',commissionspaiddate),paymenttype ) NB LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) RENEWAL FROM tblcommissionstatus where paymenttype=113 group by strftime('%Y',commissionspaiddate),Paymenttype) RN ON NB.CYCLE=RN.CYCLE LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) CLAWBACK FROM tblcommissionstatus where paymenttype=115 group by strftime('%Y',commissionspaiddate),Paymenttype) CB ON NB.CYCLE=CB.CYCLE ";
mlistuser=getUsers();
Toast.makeText(CommissionDetail.this,
"new row inserted with id = " + pos,
Toast.LENGTH_SHORT).show();
}
// Toast.makeText(CommissionDetail.this," Position " + pos + " String " + CommissionDetail.this.mSelection , Toast.LENGTH_SHORT).show();
//TextView resultText = (TextView)findViewById(R.id.SpinnerResult);
// resultText.setText(CommissionDetail.this.mSelection);
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
public int getSpinnerPosition() {
return this.mPos;
}
public void setSpinnerPosition(int pos) {
this.mPos = pos;
}
public String getSpinnerSelection() {
return this.mSelection;
}
public void setSpinnerSelection(String selection) {
this.mSelection = selection;
}
public ArrayList<UserBO> getUsers() {
com.Android.Database.DBAdapter dbAdapter = com.Android.Database.DBAdapter
.getDBAdapterInstance(this);
dbAdapter.openDataBase();
// String STR = "SELECT NB.CYCLE,cast(IFNULL(NB.NewBusiness,0) as int) NewBusiness , cast(IFNULL(RN.RENEWAL,0) as int) RENEWAL,cast(IFNULL(CB.CLAWBACK,0) as int )CLAWBACK,cast(IFNULL(( IFNULL(NB.NewBusiness,0) + IFNULL(RN.RENEWAL,0) - IFNULL(CB.CLAWBACK,0)) ,0) as int ) NETCOMMISSION FROM (SELECT strftime('%Y',commissionspaiddate) Cycle, sum(commissionamount) NewBusiness FROM tblcommissionstatus where paymenttype=111 group by strftime('%Y',commissionspaiddate),paymenttype ) NB LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) RENEWAL FROM tblcommissionstatus where paymenttype=113 group by strftime('%Y',commissionspaiddate),Paymenttype) RN ON NB.CYCLE=RN.CYCLE LEFT OUTER JOIN (SELECT strftime('%Y',commissionspaiddate) Cycle,sum(commissionamount) CLAWBACK FROM tblcommissionstatus where paymenttype=115 group by strftime('%Y',commissionspaiddate),Paymenttype) CB ON NB.CYCLE=CB.CYCLE ";
ArrayList<ArrayList<String>> stringList = dbAdapter
.selectRecordsFromDBList(STR, null);
dbAdapter.close();
ArrayList<UserBO> usersList = new ArrayList<UserBO>();
for (int i = 0; i < stringList.size(); i++) {
ArrayList<String> list = stringList.get(i);
UserBO user = new UserBO();
try {
//user.CommissionsPaiddate = Integer.parseInt(list.get(1));
user.Cycle=list.get(0);
user.NewBusiness= Integer.parseInt(list.get(1));
user.Renewal=Integer.parseInt(list.get(2));
user.Clawback=Integer.parseInt(list.get(3));
user.NetCommission=Integer.parseInt(list.get(4));
} catch (Exception e) {
Log.i("***" + CommissionDetail.class.toString(), e.getMessage());
}
usersList.add(user);
}
return usersList;
}
private class ListAdapter extends ArrayAdapter<UserBO> { // --CloneChangeRequired
private ArrayList<UserBO> mList; // --CloneChangeRequired
private Context mContext;
public ListAdapter(Context context, int textViewResourceId,
ArrayList<UserBO> list) { // --CloneChangeRequired
super(context, textViewResourceId, list);
this.mList = list;
this.mContext = context;
}
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
try {
if (view == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.commissiondetail_tab, null); // --CloneChangeRequired(list_item)
}
final UserBO listItem = mList.get(position);
if (listItem != null) {
((TextView) view.findViewById(R.id.item1))
.setText(listItem.getCycle()+"");
((TextView) view.findViewById(R.id.item2))
.setText(listItem.getNewBusiness()+"");
((TextView) view.findViewById(R.id.item3))
.setText(listItem.getRenewal()+"");
((TextView) view.findViewById(R.id.item4))
.setText(listItem.getClawback()+"");
((TextView) view.findViewById(R.id.item5))
.setText(listItem.getNetCommission()+"");
}
}
catch (Exception e) {
Log.i(CommissionDetail.ListAdapter.class.toString(),
e.getMessage());
}
return view;
}
}
}