使用注解的办法处理android中,对于findViewById的优化(应该叫方便)。
参考:https://github.com/wyouflf/xUtils
使用Gradle构建时添加一下依赖即可:

compile ‘org.xutils:xutils:3.3.32’
在写android中,经常要出现大量的findviewbyid

        et_path = (EditText) findViewById(R.id.et_path);        tv_info = (TextView) findViewById(R.id.tv_info);

在这儿介绍一下用注解的办法处理。从此告别findviewbyid。(偶尔)

**xUtils 3**
@ContentView(R.layout.activity_main)public class MainActivity extends AppCompatActivity {    @ViewInject(R.id.aaa)    private TextView aaa;    @ViewInject(R.id.bbb)    private TextView bbb;    @ViewInject(R.id.ccc)    private TextView ccc;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);// setContentView(R.layout.activity_main);        x.view().inject(this);//一定不要忘记这句话。    }   // @Event(value = R.id.mybut,type = View.OnClickListener.class)    @Event({R.id.buttonOn1,R.id.buttonOn2})    private void button(View view) {        if (view.getId() == R.id.buttonOn1) {            aaa.setText("sss");            bbb.setText("www");            ccc.setText("eee");        }else if(view.getId() == R.id.buttonOn2){            bbb.setText("2222222");        }    }----------    <TextView        android:id="@+id/aaa"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="aaaaa" />    <TextView        android:id="@+id/bbb"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="bbbbb" />    <TextView        android:id="@+id/ccc"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="ccccc!" />    <Button        android:id="@+id/buttonOn1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Button1" />    <Button        android:id="@+id/buttonOn2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="button2" />

**如果你使用的是
uXtils 2 :**

    @ViewInject(R.id.et_path)    private EditText et_path;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //这句话一定不能少,这句话相当与上面的那句。效果一样        ViewUtils.inject(this);         }@ViewInject(R.id.textView)TextView textView;//@ViewInject(vale=R.id.textView, parentId=R.id.parentView)//TextView textView;@ResInject(id = R.string.label, type = ResType.String)private String label;// 取消了之前使用方法名绑定事件的方式,使用id绑定不受混淆影响// 支持绑定多个id @OnClick({R.id.id1, R.id.id2, R.id.id3})// or @OnClick(value={R.id.id1, R.id.id2, R.id.id3}, parentId={R.id.pid1, R.id.pid2, R.id.pid3})// 更多事件支持参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。@OnClick(R.id.test_button)public void testButtonClick(View v) { // 方法签名必须和接口中的要求一致    ...}

3,如果你使用的是butterknife,这和上面的有点点不同。

 @InjectView(R.id.ok_btn) //控件对应的ID 2     Button mBtn; 3  4     @InjectView(R.id.title_text) 5     TextView mTitleTextView; 6  7     @Override 8     protected void onCreate(Bundle savedInstanceState) { 9         super.onCreate(savedInstanceState);10         setContentView(R.layout.main_activity);11 12         ButterKnife.inject(this);13 14         //这样之后就可以直接使用变量了15         mTitleTextView.setText("test");16 17     }@InjectViews({ R.id.first_name, R.id.middle_name, R.id.last_name }) List<EditText> nameViews;@OnClick(R.id.submit) public void submit() {   // TODO submit data to server... } //还可以批量为多个控件添加为同一个响应函数:@OnClick({ R.id.door1, R.id.door2, R.id.door3 })  public void pickDoor(DoorView door) {   if (door.hasPrizeBehind()) {       //todo   } else {     //todo   }  }注:最新版的库已经将方法名改了,当然也是兼容上面所列的例子的。最新示例如下:class ExampleActivity extends Activity {  @FindView(R.id.user) EditText username;  @FindView(R.id.pass) EditText password;  @OnClick(R.id.submit) void submit() {    // TODO call server...  }  @Override public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.simple_activity);    ButterKnife.bind(this);    // TODO Use fields...  }}

用gradle配置的时候加入:
compile files(‘libs/butterknife-7.0.1.jar’),自己下载或者github导入包重点内容

sssssssssssssssssss内容

public class MainActivity extends Activity {    @Bind(R.id.tv_text1)    TextView tv_text1;    @Bind(R.id.tv_text2)    TextView tv_text2;    @Bind(R.id.tv_text3)    TextView tv_text3;    @Bind(R.id.tv_text4)    TextView tv_text4;    @Bind(R.id.tv_text5)    TextView tv_text5;    @Bind(R.id.tv_text6)    TextView tv_text6;    @Bind(R.id.tv_text7)    TextView tv_text7;    @Bind(R.id.tv_text8)    TextView tv_text8;    @BindString(R.string.hello_world) // 设置sting    String title;    @BindDrawable(R.drawable.ic_launcher) // 设置资源    Drawable graphic;    @BindColor(R.color.color_bule) // 设置颜色    int red;    @BindDimen(R.dimen.text_size) // 设置dimen值    float spacers;    @SuppressLint("NewApi")    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.bind(MainActivity.this);//绑定。        tv_text1.setText("1231");        tv_text2.setText("1024");        tv_text3.setText("5454");        tv_text4.setText("7865");        tv_text5.setText("9630");        tv_text6.setText("wertw");    }    @OnClick(R.id.tv_text1)    public void sayHi(TextView button) {        button.setText("你按到我了啦!");    }    @SuppressLint("NewApi")    @OnClick(R.id.tv_text2)    public void sayHi2(TextView button) {        button.setBackground(graphic);    }    @OnClick(R.id.tv_text3)    public void sayHi3(TextView button) {        button.setTextColor(red);    }    @OnClick(R.id.tv_text4)    public void sayHi4(TextView button) {        button.setTextSize(spacers);    }

**4,如果你使用的是很早的版本,继承RoboActivity的
,则:这个不要在onCreate里面写那几话。**

@InjectView(R.id.button)    Button goButton;    @InjectView(R.id.textview1)    TextView textView1;    @InjectView(R.id.textview2)    TextView textView2;    @InjectView(R.id.textview3)    TextView textView3;    @InjectView(R.id.textview4)    TextView textView4;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.injectview);//      goButton.setOnClickListener(mGoListener);        goButton.setOnClickListener(this);    }    @Override    public void onClick(View view) {        if (view.getId() == R.id.button) {            textView1.setText("Clicked");            textView2.setText("Clicked");            textView3.setText("Clicked");            textView4.setText("Clicked");        }    }

更多相关文章

  1. Android——自定义通知栏使用
  2. Android端JQueryMobile使用教程(二)
  3. android studio使用错误排查记录
  4. Android横竖屏切换测试记录
  5. 调用Android系统设置中的Intent
  6. Android(安卓)录音
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. android中用XMPP Asmack获取用户朋友的pr
  2. android 拼音字母搜索联系人以及实现多选
  3. Android(安卓)SDK Manager:Failed to fetc
  4. Android(安卓)开发小技巧1: Button 点击区
  5. Android进行设备管理(针对企业开发)
  6. 浅谈android的selector背景选择器
  7. Android(安卓)上移植 ghostscript-9.04
  8. android 屏幕旋转 重新调用onCreate
  9. Android(安卓)UI设计——ImageView和Imag
  10. ADB 命令大全