如何在Android中编写开关盒 [英] how to write a switch case in android

查看:59
本文介绍了如何在Android中编写开关盒的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,
我陷入了这个问题,
我有一个微调器和一个列表视图,单击微调器选择后,一组特定的数据将与该列表视图绑定.我已经编写了代码,但是没有用.有人请帮忙.
我也在发送代码.在此先感谢.
下面是他的课

Hi all,
i am stuck with this problem,
i have a spinner and a list view ,on click of spinner selection a particular set of data gets bind with the list view. I have written the code but it isnt working.somebody pls help.
i am sending the code also. thanks in advance.
below is he class

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;
		}
	}
	}

推荐答案

空异常可能来自多个地方.在这一点上,我认为最好的建议是您使用调试器,然后查看异常情况在哪里,并且当前对象引用为null.
The null exception could come from several places. At this point I think the best advice is that you use the debugger and see where the exception is takinh place and whot object reference is null at the moment.


这篇关于如何在Android中编写开关盒的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆