986244073 / Yancy-ButterKnife-Demo

Butter Knife的演示教程

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Butter Knife

在app的gradle里面导入依赖

implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

在MainActivity中使用

public class MainActivity extends AppCompatActivity {
    @BindView(R.id.mBtn)
    Button mBtn;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //绑定初始化ButterKnife
        ButterKnife.bind(this);
        mBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "好了", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

gradle

buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
        classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'
    }
}

app

java8

    // Butterknife requires Java 8.
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
//apply plugin: 'com.android.library'
//apply plugin: 'com.jakewharton.butterknife'

然后使用教程

@BindView----> 绑定viewidview 变量
@BindView(R.id.tv_fm1)
TextView tvFm1;

@BindViews ----> 绑定多个 viewidviewlist 变量
@BindViews({ R.id.btn1,R.id.btn2 })
List buttons;

@BindArray----> 绑定 string 里面 array 数组;
@BindArray(R.array.city )
String[] citys ;

@BindBitmap----> 绑定图片资源为 Bitmap@BindBitmap(R.mipmap.wifi )
Bitmap bitmap;

@BindBool ----> 绑定 boolean@BindColor ----> 绑定 color@BindColor(R.color.colorAccent)
int black;

@BindDimen ----> 绑定 Dimen@BindDimen(R.dimen.borth_width)
int mBorderWidth;

@BindDrawable ----> 绑定 Drawable@BindDrawable(R.drawable.test_pic)
Drawable mTestPic;

@BindFloat ----> 绑定 float

@BindInt ----> 绑定 int

@BindString ----> 绑定String idString 变量;
@BindString(R.string.app_name )
String meg;

fragment中使用

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.fragment_smart_home, container, false);
    ButterKnife.bind(this, view);
    initRecycerView();
    return view;
}
@Override
public void onDestroyView() {
    if (unbinder != null) {
        unbinder.unbind();
    }
    super.onDestroyView();
}

activity中使用

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
    }

adapter

public class MyAdapter extends BaseAdapter {  

  @Override   
  public View getView(int position, View view, ViewGroup parent) {  
    ViewHolder holder;  
    if (view != null) {  
      holder = (ViewHolder) view.getTag();  
    } else {  
      view = inflater.inflate(R.layout.testlayout, parent, false);  
      holder = new ViewHolder(view);  
      view.setTag(holder);  
    }  

    holder.name.setText("Donkor");  
    holder.job.setText("Android");
    // etc...  
    return view;  
  }  

  static class ViewHolder {  
    @BindView(R.id.title) TextView name;  
    @BindView(R.id.job) TextView job;  

    public ViewHolder(View view) {  
      ButterKnife.bind(this, view);  
    }  
  }  
}  

About

Butter Knife的演示教程


Languages

Language:Java 100.0%