Articles of butterknife

ButterKnife onclick无效

我使用butterknife库完美地注入了视图。 但是当我尝试实现监听器时,例如onclick我无法实现它们。 以下java代码将帮助您了解我的问题。 Java代码: public class LoginActivity extends ActionBarActivity{ @InjectView(R.id.toolbar) Toolbar toolbar; @InjectView(R.id.btn_login) Button login; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); ButterKnife.inject(this); initialize(); //initListeners(); @OnClick(R.id.btn_login) public void submit(View view) { // TODO submit data to server… } } /*private void initListeners() { @OnClick(R.id.btn_login) public void login(){ } }*/ private void initialize() { setSupportActionBar(toolbar); […]

Butterknife View注射

我偶然发现了一个名为ButterKnife的非常有趣的dependency injection库。 使用ButterKnife可以很容易地将Views注入活动或片段。 class ExampleActivity extends Activity { @InjectView(R.id.title) TextView title; @InjectView(R.id.subtitle) TextView subtitle; @InjectView(R.id.footer) TextView footer; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_activity); ButterKnife.inject(this); // TODO Use “injected” views… } } 但是,如果使用dependency injection,那些视图必须是public以便Butterknife可以注入它(使用private字段会导致exceptionfields must not be private or static )。 在我过去的项目中,我总是将所有成员字段(包括视图)设为private因为我认为这是最佳实践(信息隐藏等)现在我想知道是否有理由不应该public所有视图? 在这种情况下,我不能使用ButterKnife但我想使用它,因为它大大简化了代码。

带有可选ID的@OnClick数组(ButterKnife)

我有一个活动,当web请求完成时,它会使视图膨胀。 这个视图的一些小部件必须附加到一个onClick方法,所以我有: @OnClick({R.id.bt1, R.id.bt2, R.id.inflated_bt1, R.id.inflated_bt2}) public void onClick(View view) { // … } 当创建应用程序时,由于R.id.inflated_bt1和R.id.inflated_bt2不存在,它会抛出一个exception,建议设置@Optional注释。 找不到方法’onClick’的ID为XXXXXXXX的必需视图’inflated_bt1’。 如果此视图是可选的,请添加“@Optional”注释。 有没有办法用@Optional注释设置一些视图,并在视图膨胀时注入它们? 或者,还有另一种方法吗? 谢谢

AndroidStudio禁用“字符串types的预期资源”

我刚刚尝试为我的一个项目生成签名的apk(之前我已经做过),但是(也许自从更新Android Studio)我得到了 错误:错误:字符串[ResourceType]types的预期资源 这是因为我正在使用Butterknife的@BindString,它被生成类似的东西 target.settings = res.getString(2131230792); 如何让工作室不将此检测为错误? 我试过在设置中搜索,但没有成功。

黄油刀 – 无法为片段绑定视图

我得到一个exceptionjava.lang.RuntimeException:无法绑定ButterKnife.bind(this,view)片段的视图。 代码如下所示: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_personal, container, false); ButterKnife.bind(this, view); BindData(); return view; }

Butterknife 8.4.0 – 找不到id为'android-apt'的插件

我不断收到Plugin with id 'android-apt' not found的错误Plugin with id 'android-apt' not found 。 这里怎么了? plugins { id "me.tatarka.retrolambda" version "3.2.5" } apply plugin: 'com.android.application' apply plugin: 'android-apt' android { compileSdkVersion 24 buildToolsVersion '23.0.3' dexOptions { javaMaxHeapSize "6g" } defaultConfig { applicationId "com.yitter.android" minSdkVersion 15 targetSdkVersion 24 multiDexEnabled true // Enabling multidex support. renderscriptTargetApi 23 renderscriptSupportModeEnabled true […]

ButterKnife:ViewPager上片段重新创build后的空视图

我正在使用Butterknife(8.2.1)的最新版本,我遇到了一个问题:在使用带有3个碎片的ViewPager时,当碎片被重新创build时,所有视图都变为空! 前两个碎片,没问题,但是当我刷到第三个,回到第一个碎片时,每个视图变为空。 可能是什么问题呢? 我添加了ButterKnife.setDebug(true); 获得更多关于这个问题的信息,我得到这个: D/ButterKnife: Looking up view binder for com.example.overview.MeetupOverviewFragment D/ButterKnife: HIT: Cached in view binder map. D/ButterKnife: Looking up view binder for com.example.attendees.MeetupAttendeesFragment D/ButterKnife: HIT: Cached in view binder map. D/ButterKnife: Looking up view binder for com.example.attendees.ControllerListAttendees$ItemViewHolder D/ButterKnife: HIT: Cached in view binder map. D/ButterKnife: Looking up view binder for com.example.attendees.ControllerListAttendees$ItemViewHolder D/ButterKnife: […]

在Butter Knife生成的代码上找不到符号类

我试图使用黄油刀,但与生成的代码有问题。 这是抱怨命名空间…我不知道为什么。 错误:找不到符号类细节 为了简化看到所有的和平,我打印。 你可以帮我吗? com.phormar.android.Detail命名空间存在; PessoaFragment也在com.phormar.android.Detail包中。

Butterknife @InjectView问题更新到7之后

我为我的许多观点使用@InjectView 。 我更新到最新版本7后,他们停止工作? 发生了什么?

Butterknife从Menu中绑定SearchView

在我目前的Android项目中,我使用Butterknife库来绑定视图并为它们使用onClick注释。 这一切都很好,即使在片段,但现在我在我无法find解决scheme的地步: 我使用新的ToolBar作为ActionBar并使用其中的SearchView充气菜单。 对于这个SearchView我想使用@OnTextChanged注解,但是当我用菜单项的ActionView调用bind方法时, Butterknife试图再次重新展示所有视图,当然在ActionView它找不到任何其他的RootLayout视图。 那么有没有办法只添加一个View与Butterknife或者我可以得到一个视图,其中包含我的RootLayout和ToolBarView所有视图,所以我可以传递这个视图的绑定方法? 例如在Activites中,我可以调用findViewById也用于菜单ID,但如果我从我的Fragment使用getView()它不起作用。 任何想法呢?