AndroidAnnotations学习笔记(一)


转载自http://hista.iteye.com/blog/2180683


@OptionsMenu、@OptionsMenuItem、@OptionsItem

@OptionsMenu :用来指定菜单资源
@OptionsMenuItem :MenuItem的实例
@OptionsItem :用来接收菜单的选中事件

没有上面的注解,我们要这样写代码

Java代码   收藏代码
  1. @EActivity(R.layout.activity_test)  
  2. public class TestActivity extends Activity {  
  3.       
  4.     MenuItem itemhome;  
  5.       
  6.     @Override  
  7.     protected void onCreate(Bundle savedInstanceState) {  
  8.         super.onCreate(savedInstanceState);  
  9.     }  
  10.       
  11.     @Override  
  12.     public boolean onCreateOptionsMenu(Menu menu) {  
  13.         MenuInflater menuInflater = getMenuInflater();  
  14.         menuInflater.inflate(com.hista.weiweilove.R.menu.mymenu, menu);  
  15.         itemhome = menu.findItem(R.id.menu_home);  
  16.         return super.onCreateOptionsMenu(menu);  
  17.     }  
  18.       
  19.     @Override  
  20.     public boolean onOptionsItemSelected(MenuItem item) {  
  21.         // TODO Auto-generated method stub  
  22.         switch(item.getItemId()){  
  23.            case R.id.menu_home:          
  24.                Toast.makeText(TestActivity.this""+"home", Toast.LENGTH_SHORT).show();  
  25.                itemhome.setTitle("主页君");  
  26.                break;  
  27.            case R.id.menu_search:  
  28.                  
  29.                Toast.makeText(TestActivity.this""+"search", Toast.LENGTH_SHORT).show();  
  30.                break;  
  31.            case R.id.menu_share:  
  32.                  
  33.                Toast.makeText(TestActivity.this""+"share", Toast.LENGTH_SHORT).show();  
  34.                break;  
  35.            default:  
  36.                break;  
  37.            }  
  38.       
  39.         return super.onOptionsItemSelected(item);  
  40.     }  
  41. }  
@EActivity(R.layout.activity_test)
public class TestActivity extends Activity {
	
	MenuItem itemhome;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}
	
	@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(com.hista.weiweilove.R.menu.mymenu, menu);
        itemhome = menu.findItem(R.id.menu_home);
        return super.onCreateOptionsMenu(menu);
    }
    
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		switch(item.getItemId()){
	       case R.id.menu_home:	       
	           Toast.makeText(TestActivity.this, ""+"home", Toast.LENGTH_SHORT).show();
	           itemhome.setTitle("主页君");
	           break;
	       case R.id.menu_search:
	           
	           Toast.makeText(TestActivity.this, ""+"search", Toast.LENGTH_SHORT).show();
	           break;
	       case R.id.menu_share:
	           
	           Toast.makeText(TestActivity.this, ""+"share", Toast.LENGTH_SHORT).show();
	           break;
	       default:
	    	   break;
	       }
	
		return super.onOptionsItemSelected(item);
	}
}


有了上面的注解我们可以这样写代码

Java代码   收藏代码
  1. @EActivity(R.layout.activity_test)  
  2. @OptionsMenu(R.menu.mymenu)  
  3. public class TestActivity extends Activity {  
  4.       
  5.     @OptionsMenuItem  
  6.     MenuItem menu_home;  
  7.       
  8.     @Override  
  9.     protected void onCreate(Bundle savedInstanceState) {  
  10.         super.onCreate(savedInstanceState);  
  11.     }  
  12.       
  13.     @OptionsItem(R.id.menu_share)  
  14.     void myMethod() {  
  15.         // You can specify the ID in the annotation, or use the naming convention  
  16.         Toast.makeText(TestActivity.this""+"share", Toast.LENGTH_SHORT).show();  
  17.     }  
  18.   
  19.     @OptionsItem  
  20.     void menu_home() {  
  21.         // home was selected in the action bar  
  22.         // The "Selected" keyword is optional  
  23.         Toast.makeText(TestActivity.this""+"home", Toast.LENGTH_SHORT).show();  
  24.         menu_home.setTitle("主页君");  
  25.     }  
  26.   
  27.     @OptionsItem  
  28.     boolean menu_search() {  
  29.         Toast.makeText(TestActivity.this""+"search", Toast.LENGTH_SHORT).show();  
  30.         // menuSearch was selected  
  31.         // the return type may be void or boolean (false to allow normal menu processing to proceed, true to consume it here)  
  32.         return true;  
  33.    }  
  34.   
  35.     @OptionsItem({ R.id.menu_search, R.id.menu_share })  
  36.     void multipleMenuItems() {  
  37.         // You can specify multiple menu item IDs in @OptionsItem  
  38.         Toast.makeText(TestActivity.this""+"search or share", Toast.LENGTH_SHORT).show();  
  39.     }  
  40. }  
@EActivity(R.layout.activity_test)
@OptionsMenu(R.menu.mymenu)
public class TestActivity extends Activity {
	
	@OptionsMenuItem
    MenuItem menu_home;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}
	
	@OptionsItem(R.id.menu_share)
    void myMethod() {
		// You can specify the ID in the annotation, or use the naming convention
		Toast.makeText(TestActivity.this, ""+"share", Toast.LENGTH_SHORT).show();
    }

    @OptionsItem
    void menu_home() {
    	// home was selected in the action bar
    	// The "Selected" keyword is optional
    	Toast.makeText(TestActivity.this, ""+"home", Toast.LENGTH_SHORT).show();
    	menu_home.setTitle("主页君");
    }

    @OptionsItem
    boolean menu_search() {
    	Toast.makeText(TestActivity.this, ""+"search", Toast.LENGTH_SHORT).show();
    	// menuSearch was selected
    	// the return type may be void or boolean (false to allow normal menu processing to proceed, true to consume it here)
    	return true;
   }

    @OptionsItem({ R.id.menu_search, R.id.menu_share })
    void multipleMenuItems() {
    	// You can specify multiple menu item IDs in @OptionsItem
    	Toast.makeText(TestActivity.this, ""+"search or share", Toast.LENGTH_SHORT).show();
    }
}


@OptionsItem({ R.id.menu_search, R.id.menu_share }) 支持多个MenuItem


@SeekBarProgressChange

在未使用这个注解前,我们要写这样的代码
Java代码   收藏代码
  1. @EActivity(R.layout.activity_test)  
  2. public class TestActivity extends Activity {  
  3.       
  4.     @ViewById(R.id.tv_test)  
  5.     TextView tvTest;  
  6.       
  7.     @ViewById  
  8.     SeekBar seekbar1;  
  9.     @ViewById  
  10.     SeekBar seekbar2;  
  11.       
  12.     @UiThread  
  13.     void setObject(String s){  
  14.         tvTest.setText(s);  
  15.     }  
  16.       
  17.     @AfterViews  
  18.     void afterView(){  
  19.           
  20.         seekbar1.setOnSeekBarChangeListener(new OnSeekBarChangeListener()  
  21.         {  
  22.             public void onProgressChanged(SeekBar arg0,int progress,boolean fromUser)  
  23.             {  
  24.                 setObject(String.valueOf(progress));    
  25.             }  
  26.               
  27.             @Override  
  28.             public void onStartTrackingTouch(SeekBar seekBar) {  
  29.                 // TODO Auto-generated method stub  
  30.                 Toast.makeText(TestActivity.this"seekbar touch stare"100).show();  
  31.             }  
  32.             @Override  
  33.             public void onStopTrackingTouch(SeekBar seekBar) {  
  34.                 // TODO Auto-generated method stub  
  35.                 Toast.makeText(TestActivity.this"seekbar touch end"100).show();  
  36.             }  
  37.         });  
  38.     }  
  39. }  
@EActivity(R.layout.activity_test)
public class TestActivity extends Activity {
	
	@ViewById(R.id.tv_test)
	TextView tvTest;
	
	@ViewById
	SeekBar seekbar1;
	@ViewById
	SeekBar seekbar2;
	
	@UiThread
	void setObject(String s){
		tvTest.setText(s);
	}
	
	@AfterViews
	void afterView(){
		
		seekbar1.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
        {
        	public void onProgressChanged(SeekBar arg0,int progress,boolean fromUser)
        	{
        		setObject(String.valueOf(progress));  
        	}
        	
			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				// TODO Auto-generated method stub
				Toast.makeText(TestActivity.this, "seekbar touch stare", 100).show();
			}
			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				// TODO Auto-generated method stub
				Toast.makeText(TestActivity.this, "seekbar touch end", 100).show();
			}
        });
    }
}


使用之后我们可以这样写代码:
Java代码   收藏代码
  1. @EActivity(R.layout.activity_test)  
  2. public class TestActivity extends Activity {  
  3.       
  4.     @ViewById(R.id.tv_test)  
  5.     TextView tvTest;  
  6.       
  7.     @ViewById  
  8.     SeekBar seekbar1;  
  9.     @ViewById  
  10.     SeekBar seekbar2;  
  11.       
  12.     @UiThread  
  13.     void setObject(String s){  
  14.         tvTest.setText(s);  
  15.     }  
  16.       
  17.     @SeekBarProgressChange(R.id.seekbar1)  
  18.      void onProgressChangeOnSeekBar(SeekBar seekBar, int progress, boolean fromUser) {  
  19.         // Something Here  
  20.         setObject(String.valueOf(progress));   
  21.      }  
  22.   
  23.      @SeekBarProgressChange(R.id.seekbar1)  
  24.      void onProgressChangeOnSeekBar(SeekBar seekBar, int progress) {  
  25.         // Something Here  
  26.          setObject(String.valueOf(progress));   
  27.      }  
  28.   
  29.      @SeekBarProgressChange({R.id.seekbar1, R.id.seekbar2})  
  30.      void onProgressChangeOnSeekBar(SeekBar seekBar) {  
  31.         // Something Here  
  32.          setObject(String.valueOf(seekBar.getProgress()));   
  33.      }  
  34.   
  35.      @SeekBarProgressChange({R.id.seekbar1, R.id.seekbar2})  
  36.      void onProgressChangeOnSeekBar() {  
  37.         // Something Here  
  38.      }  
  39. }  
@EActivity(R.layout.activity_test)
public class TestActivity extends Activity {
	
	@ViewById(R.id.tv_test)
	TextView tvTest;
	
	@ViewById
	SeekBar seekbar1;
	@ViewById
	SeekBar seekbar2;
	
	@UiThread
	void setObject(String s){
		tvTest.setText(s);
	}
	
	@SeekBarProgressChange(R.id.seekbar1)
	 void onProgressChangeOnSeekBar(SeekBar seekBar, int progress, boolean fromUser) {
	    // Something Here
		setObject(String.valueOf(progress)); 
	 }

	 @SeekBarProgressChange(R.id.seekbar1)
	 void onProgressChangeOnSeekBar(SeekBar seekBar, int progress) {
	    // Something Here
		 setObject(String.valueOf(progress)); 
	 }

	 @SeekBarProgressChange({R.id.seekbar1, R.id.seekbar2})
	 void onProgressChangeOnSeekBar(SeekBar seekBar) {
	    // Something Here
		 setObject(String.valueOf(seekBar.getProgress())); 
	 }

	 @SeekBarProgressChange({R.id.seekbar1, R.id.seekbar2})
	 void onProgressChangeOnSeekBar() {
	    // Something Here
	 }
}

@SeekBarProgressChange({R.id.seekbar1, R.id.seekbar2}) :支持绑定多个View
同样,与前面的几个事件一样,也支持多种参数形式

@SeekBarTouchStart、@SeekBarTouchStop

原有代码书写方式见前面那个注解,这里就不重复了

有了这两个注解后,我们可以这样写代码了:

Java代码   收藏代码
  1. @EActivity(R.layout.activity_test)  
  2. public class TestActivity extends Activity {  
  3.       
  4.     @ViewById(R.id.tv_test)  
  5.     TextView tvTest;  
  6.       
  7.     @ViewById  
  8.     SeekBar seekbar1;  
  9.       
  10.     @UiThread  
  11.     void setObject(String s){  
  12.         tvTest.setText(s);  
  13.     }  
  14.       
  15.     @SeekBarTouchStart(R.id.seekbar1)  
  16.     void seekbarStart(SeekBar seekBar)  
  17.     {  
  18.         Toast.makeText(TestActivity.this"seekbar touch stare"100).show();  
  19.     }  
  20.       
  21.     @SeekBarTouchStop(R.id.seekbar1)  
  22.     void seekbarStop(SeekBar seekBar)  
  23.     {  
  24.         Toast.makeText(TestActivity.this"seekbar touch stop"100).show();  
  25.     }  
  26. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值