ViewPager 初体验

本文详细介绍如何使用ViewPager和PagerAdapter实现Android应用中的Tab切换功能,包括初始化ViewPager、创建PagerAdapter、设置Tab布局、处理Tab切换时的UI更新及数据刷新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  private void initView() 
    { 
        mViewPager = (ViewPager) findViewById(R.id.id_viewpager); 
         // tabs 

  
         LayoutInflater mInflater = LayoutInflater.from(this); 
         View tab01 = mInflater.inflate(R.layout.send_layout, null); 
         View tab02 = mInflater.inflate(R.layout.inventory_layout, null); 
         View tab03 = mInflater.inflate(R.layout.setting_layout, null); 
         mViews.add(tab01); 
         mViews.add(tab02); 
         mViews.add(tab03); 
  
         mAdapter = new PagerAdapter() 
         { 
  
         private int mChildCount = 0;
          @Override
             public void notifyDataSetChanged() {        
                   mChildCount = getCount();
                   super.notifyDataSetChanged();
             }
         
           @Override
              public int getItemPosition(Object object)   {         
                    if ( mChildCount > 0) {
                    mChildCount --;
                    return POSITION_NONE;
                    }
                    return super.getItemPosition(object);
              }
          
             @Override 
             public void destroyItem(ViewGroup container, int position, 
                     Object object) 
             { 
                 container.removeView(mViews.get(position)); 
                 Log.d("TEST_DEBUG", "remove view, the position is:" + String.valueOf(position) );
             } 
  
             @Override 
             public Object instantiateItem(ViewGroup container, int position) 
             { 
                 View view = mViews.get(position); 
                 container.addView(view); 
                 Log.d("TEST_DEBUG", "instantiateItem view, the position is:"+String.valueOf(position));
                
              switch (position)
            {
            case 0:
                  // initBox();
             BoxAdapter adapter = new BoxAdapter(MainActivity.this, R.layout.boxview, boxList);      
            ListView listView = (ListView)view.findViewById(R.id.list_view);
               listView.setAdapter(adapter);
              
          
           listView.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                int position, long id)
                {
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
                 Box mbox = boxList.get(position);
               // mbox.setImageId(R.drawable.box_status_open); 
                 notifyDataSetChanged();
                
               //TO do action when click item 
                  }
                });
               
                   //EditText msg = (EditText)findViewById(R.id.edit_text);
                   //msg.setText("this is a test");
            break;
            case 1:
             BoxAdapter adapterinventory = new BoxAdapter(MainActivity.this, R.layout.boxview, inventoryList);      
            ListView listViewinventory = (ListView)view.findViewById(R.id.inventory_view);
            listViewinventory.setAdapter(adapterinventory);
            

                   
             break;
            case 2:
             
             TextView settingUser = (TextView) findViewById(R.id.setting_userinfo);
              StringBuilder boxinfo = new StringBuilder();
               boxinfo.append("xx:  ");
               boxinfo.append(userinfo.getaccount().toString());
               boxinfo.append("\n");
              
               boxinfo.append("xx:  ");
               boxinfo.append(userinfo.getname().toString());
               boxinfo.append("\n");
              
               boxinfo.append("xx:  ");
               boxinfo.append(userinfo.getphone().toString());
               boxinfo.append("\n");

               boxinfo.append("xxx:  ");
               boxinfo.append(userinfo.getdistributeId().toString());
               boxinfo.append("\n");
              
               if (!userinfo.getaddr().equals(""))
               {
               boxinfo.append("xxx:  ");
               boxinfo.append(userinfo.getaddr().toString());
               }
              
               settingUser.setText(boxinfo.toString());   
              
              
             Button configbutton = (Button) findViewById(R.id.reedit);
                   
             configbutton.setOnClickListener(new OnClickListener()
                   {
                    public void onClick(View v)
                    {
                     setContentView(configView);
                     ((EditText)findViewById(R.id.reg_account)).setText(userinfo.getaccount());
                     ((EditText)findViewById(R.id.reg_account)).setEnabled(false);
                     
                     ((EditText)findViewById(R.id.reg_pwd)).setText("");
                    
                      ((EditText)findViewById(R.id.reg_pwd_confirm)).setText("");
                                        
                    ((EditText)findViewById(R.id.reg_realname)).setText(userinfo.getname());
                    
                    ((EditText)findViewById(R.id.reg_phone)).setText(userinfo.getphone());
                    
                    ((EditText)findViewById(R.id.reg_distributionId)).setText(userinfo.getdistributeId());       
                      
                    ((EditText)findViewById(R.id.reg_addr)).setText(userinfo.getaddr()); 
                        
                    Button regbutton = (Button) findViewById(R.id.submit_recfg);
                         regbutton.setOnClickListener(new OnClickListener()
                         {
                            public void onClick(View v)
                            {
                             Toast.makeText(MainActivity.this,"Update data sucessfully...", 0).show();
                            onBackPressed();
                            } 
                         });
                         

                    }
                   });
             
             ToggleButton ctrlButton = (ToggleButton) findViewById(R.id.opencontroller);
             
             ctrlButton.setOnClickListener(new OnClickListener()
             {
                   public void onClick(View v)
                   {
                    Toast.makeText(MainActivity.this,"Start the service sucessfully...", 0).show();
                   Intent searchintent = new Intent(MainActivity.this, BluetoothService.class);
                   startService(searchintent);
                  // onBackPressed();
                   } 
             });
             
             
            
                   Button logoutbutton = (Button) findViewById(R.id.logout);// 退出返回到login 界面
                  
                   logoutbutton.setOnClickListener(new OnClickListener()
                 {
                  public void onClick(View v)
                  {
                           Intent loginintent = new Intent(MainActivity.this, login.class); 
                           startActivity(loginintent);
                  finish();       
                  }
                 });
             break;
            default:
            break;
            }
                
                 return view; 
             } 
  
             @Override 
             public boolean isViewFromObject(View arg0, Object arg1) 
             { 
                 return arg0 == arg1; 
             } 
  
             @Override 
             public int getCount() 
             { 
                 return mViews.size(); 
             } 
            

             @Override
                public void setPrimaryItem(View container, int position, Object object)
             {
                 //把这个position赋值到一个全局变量,通过这个就会知道滑动到哪个页面了
              Log.d("TEST_DEBUG", "setPrimaryItem, The position is:"+String.valueOf(position));
              switch (position)
           {
           case 0:
                sendbutton.setImageResource(R.drawable.box_send);
                inventorybutton.setImageResource(R.drawable.box_inventory_org);
                settingbutton.setImageResource(R.drawable.box_setting_org);
           break;
           case 1:
               sendbutton.setImageResource(R.drawable.box_send_org);
               inventorybutton.setImageResource(R.drawable.box_inventory);
               settingbutton.setImageResource(R.drawable.box_setting_org);
            break;
           case 2:
               sendbutton.setImageResource(R.drawable.box_send_org);
               inventorybutton.setImageResource(R.drawable.box_inventory_org);
               settingbutton.setImageResource(R.drawable.box_setting);
            break;
           default:
           break;
           }
             
             }

         }; 
  
         mViewPager.setAdapter(mAdapter); 

转载于:https://my.oschina.net/u/3428739/blog/880510

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值