Articles of butterknife

如何使用ButterKnife OnItemClick与RecyclerView?

由于onItemClick在RecyclerView中不再存在, ButterKnife是否仍然可以使用@onItemClick或@onClick注释处理其项目点击? 如果不是这样,任何使用它的工作?

为什么Butterknife @Bind在发布版本中失败(在proguard之后)

我一直在使用Butterknife构建Android应用程序,最近升级到7.0.1。 我使用新的@Bindfunction替换了所有@InjectView和ButterKnife.inject用法,并且在调试版本中没有任何问题,但是应用程序在启动时崩溃,用于发布版本。 如果我在build.gradle中将’ minifyEnabled ‘切换为false,那么我可以生成一个工作版本。 我正在使用Butterknife网站上记录的proguard配置,但它似乎并不适合我。 我也在构建中使用Dagger,Picasso和Flurry。 我的proguard-rules.pro内容: # ButterKnife -keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* ; } -keepclasseswithmembernames class * { @butterknife.* ; } # Dagger -keepclassmembers,allowobfuscation class * { @javax.inject.* *; @dagger.* *; (); } -keep class javax.inject.** { *; […]

Butterknife片段按钮不起作用

我有一个片段,我正在使用Butterknife。 public class FooFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.foo, container, false); ButterKnife.inject(this, view); return view; } @OnClick(R.id.some_btn) public void someButtonOnClick() { // do something } } 但是,在屏幕上点击按钮时,永远不会调用someButtonOnClick方法。 关于Butterknife框架我做错了什么的想法? 这是正在使用的布局:

Butterknife Fragment注入视图不起作用?

任何人都可以使用以下代码解释为什么我的View元素(ListView)为null : public class NewsFragment extends Fragment { @InjectView(R.id.news_listView) ListView lv; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.news_layout, container, false); ButterKnife.inject(this, view); return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); if (lv == null) { UIHelper.showAlert(“null?”); } } } 我做错了什么或者库有什么问题,因为我将示例代码粘贴到我的应用程序以使其正常工作,但它在这里不起作用…非常感谢任何帮助!

Kotlin Android View Binding:findViewById vs Butterknife vs Kotlin Android Extension

我正试图找出在Kotlin中进行Android View Binding的最佳方法。 似乎有一些选择: findViewById val button: Button by lazy { findViewById(R.id.button) } 牛油刀 https://github.com/JakeWharton/butterknife @BindView(R.id.button) lateinit var button: Button Kotlin Android扩展程序 https://kotlinlang.org/docs/tutorials/android-plugin.html import kotlinx.android.synthetic.main.activity_main.* 我对java版本中的findViewById和Butterknife非常熟悉,但Kotlin中每种视图绑定方法的优缺点是什么? Kotlin Android扩展程序是否与RecyclerView + ViewHolder模式配合得很好? 另外,Kotlin Android Extensions如何通过include处理嵌套视图的视图绑定? 例如:对于使用activity_main.xml的Activity,如何访问View custom1 ? activity_main.xml中 custom.xml

Butter Knife返回空指针

我想在我的项目中使用Butter Knife。我根据Butter Knife教程做了一切。 但是当我向视图设置任何内容(setText,setClickListener …)时,我得到了null对象引用exception。 这是我的代码: public class LoginActivity extends AppCompatActivity implements LoginView, View.OnClickListener { @BindView(R.id.acEtUsername) AppCompatEditText userName; @BindView(R.id.acEtPassword) AppCompatEditText password; @BindView(R.id.prgCheckLogin) ProgressBar prgCheckLogin; @BindView(R.id.btnLogin) Button btnLogin; LoginPresenter loginPresenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); ButterKnife.bind(this); ButterKnife.setDebug(true); loginPresenter = new LoginPresenterImpl(this); btnLogin.setOnClickListener(this); // or userName.setText(“userName”); } /** Other Methods **/ activity_login.xml 和错误日志 Caused […]

Android Studio:整合Butterknife?

我正在尝试将Butterknife实现到我的android工作室项目中。 但是,当我这样做时,我在@InjectView上收到错误“无法解析符号InjectView”。 我没有成功地实施Butterknife吗? 活动代码: package com.example.rodf.testapp; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends ActionBarActivity { @InjectView(R.id.tvHelloWorld) TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } 布局: gradle文件: apply plugin: ‘com.android.application’ android { compileSdkVersion 21 buildToolsVersion “21.1.2” defaultConfig { applicationId “com.example.rodf.testapp” minSdkVersion 15 targetSdkVersion 21 versionCode 1 versionName […]

ButterKnife没跟杰克合作?

我刚刚开始了一个非常简单的项目并尝试使用ButterKnife和Jack编译器,但似乎它们并没有很好地应对。 Gradle插件版本:2.2.0-alpha5 在我的模块build.gradle中我添加了: compile ‘com.jakewharton:butterknife:8.2.1’ annotationProcessor ‘com.jakewharton:butterknife-compiler:8.2.1’ 并且错误消息是: Error:Execution failed for task ‘:app:transformJackWithJackForDebug’. java.lang.AssertionError: java.lang.IllegalArgumentException 我错过了什么,或者只是它们不相容?

将ButterKnife绑定到Dialog失败

我尝试将ButterKnife绑定到我使用DialogBu​​ilder方法创建的AleterDialog并且存在此方法ButterKnife.bind(Object,Dialog); 但是不要为我工作 import android.support.v4.app.DialogFragment; import android.support.v7.app.AlertDialog; public class NewUserDialogFragment extends DialogFragment { @Bind(R.id.textuserAccount) EditText textuserAccount; @Bind(R.id.textPassword) EditText textPassword; @Bind(R.id.nauta_domains) Spinner nauta_domains; @Bind(R.id.manualConfig) View manualConfig; @Bind(R.id.checkViewPass) CheckBox checkViewPass; @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog dialog = new AlertDialog.Builder(getActivity()) .setIcon(R.drawable.new_user_dialog__icon) .setTitle(R.string.new_user_dialog_title) .setView(R.layout.accountlist_dialog_user_) .setPositiveButton(R.string.alert_dialog_create, void_OnClickListener) .setNegativeButton(R.string.alert_dialog_cancel, void_OnClickListener) .create(); //Fails!!!!!!! ButterKnife.bind(this,dialog); … 错误: Caused by: java.lang.IllegalStateException: Required […]

Butterknife无法在我的Adapter类中绑定

我有一个适配器,用于绘制导航抽屉的布局。 我的导航抽屉包含两个内部xml文件:一个是Header ,另一个是Row 。 我在一个适配器中绘制这些,但是当我在我的头上尝试setText()时,我无法绑定。 这是我的适配器类: public class DrawerAdapter extends RecyclerView.Adapter { private static final int HEADER_TYPE = 0; private static final int ROW_TYPE = 1; private static Context context; private static DatabaseHelper databaseHelper; private List rows; private List icons; private String driverName; public DrawerAdapter(Context context, List rows, List icons, String driverName, DatabaseHelper databaseHelper) { […]