Bufferknife的基本使用(場景Acitivity,Adpater,Fragment)

注入依賴:

compile 'com.jakewharton:butterknife:8.4.0'
 //    編譯的時候的註解解析器,生成一套新的代碼
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
apply plugin: 'com.jakewharton.butterknife'
插件:

dependencies {
    
    classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
    

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
主代碼:

package com.example.my_bufferknife;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class MainActivity extends AppCompatActivity {
    @BindView(R.id.tv1)
    TextView textView;
    @BindView(R.id.lv)
    ListView listView;
    private List<String> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //這個綁定方法必須在setcontentview之後,不然會報錯
        ButterKnife.bind(this);

        textView.setText("出來吧");

        initDate();

        listView.setAdapter(new MyAdpater(this,list));


    }

    private void initDate() {
        list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add("意外不"+i);
        }
    }

    @OnClick({R.id.bt1,R.id.bt2,R.id.bt3})
    public void dianBt(View view){
        switch (view.getId()){
            case R.id.bt1:
                Toast.makeText(this, "新年", Toast.LENGTH_SHORT).show();
                break;
            case R.id.bt2:
                Toast.makeText(this, "快樂", Toast.LENGTH_SHORT).show();
                break;
            case R.id.bt3:
                Toast.makeText(this, "哈哈", Toast.LENGTH_SHORT).show();
                break;
        }

    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
    }
}
Adapater:

package com.example.my_bufferknife;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

/**
 * Created by admin on 2018/1/25.
 */

public class MyAdpater extends BaseAdapter {
    private Context context;
    private List<String> list;

    public MyAdpater(Context context, List<String> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        ViewHolder viewHolder = null;
        if (view == null) {

            view = View.inflate(context, R.layout.datatext, null);
            viewHolder = new ViewHolder(view);
            view.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) view.getTag();
        }

        viewHolder.tv.setText(list.get(i));
        return view;
    }


    static class ViewHolder {
        //註解綁定控件
        @BindView(R.id.lv_tv)
        TextView tv;

        //通過有參構造註解綁定佈局
        public ViewHolder(View view) {

            ButterKnife.bind(this, view);
        }
    }
}
Fragment(僞代碼):

package com.example.my_bufferknife;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import butterknife.BindView;
import butterknife.ButterKnife;

/**
 * Created by admin on 2018/1/25.
 */

public class Myfragment extends Fragment {

    private View myview;
    @BindView(R.id.tv1)
    TextView textView;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        myview = inflater.inflate(R.layout.activity_main, container,false);
        ButterKnife.bind(this,myview);

      // textView.setText("我是fragment");

        return myview;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    }
}
xml文檔(MainActivity):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.my_bufferknife.MainActivity">

    <TextView
        android:textSize="50dp"
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/bt1"
        android:text="點點"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:text="點點"
        android:id="@+id/bt2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:text="點點"
        android:id="@+id/bt3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></ListView>



</LinearLayout>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章