Articles of butterknife

Butter Knife @bind in Fragment错误

我按照网站上的说明操作: http : //jakewharton.github.io/butterknife/ error:java.lang.RuntimeException:无法启动活动ComponentInfo。 java.lang.RuntimeException:无法绑定com.project.myapp.OneFragment的视图。 我尝试删除@Bind(R.id.btnNext) Button btnNext; 并且没有运行错误。 public class OneFragment extends Fragment { @Bind(R.id.btnNext) Button btnNext; private static final String ARG_PARAM1 = “param1”; private static final String ARG_PARAM2 = “param2”; private String mParam1; private String mParam2; private OnFragmentInteractionListener mListener; public OneFragment() { // Required empty public constructor } public static OneFragment newInstance(String […]

使用ButterKnife库,在1个片段中有2个不同的视图

我目前正在尝试使用Android的ButterKnife库来处理一些样板代码( https://github.com/JakeWharton/butterknife ) 我已经设置好了,并让它半工作,但我遇到了一个我无法修复的问题:/ 我有一个片段,其中包含1个单独的ListView元素,对于这个ListView,我附加了一个包含多个元素的页脚视图。 这是我的片段使用该库的代码片段: public class UsersFragment extends Fragment { @InjectView(R.id.users_listview_id) AutoUpdatingListView list; private View footerView; @InjectView(R.id.add_user_footer_firstname_edittext_id) BootstrapEditText firstnameEditText; @InjectView(R.id.add_user_footer_middlename_edittext_id) BootstrapEditText middlenameEditText; @InjectView(R.id.add_user_footer_lastname_edittext_id) BootstrapEditText lastnameEditText; @InjectView(R.id.add_user_footer_cancel_button_id) BootstrapButton cancelButton; @InjectView(R.id.add_user_footer_okay_button_id) BootstrapButton okayButton; @InjectView(R.id.add_user_footer_facebook_button) BootstrapCircleThumbnail facebookButton; @InjectView(R.id.add_user_footer_google_plus_button) BootstrapCircleThumbnail googlePlusButton; @InjectView(R.id.add_user_footer_twitter_button) BootstrapCircleThumbnail twitterButton; @InjectView(R.id.add_user_footer_linkedin_button) BootstrapCircleThumbnail linkedInButton; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { […]

@OnClick不能用于ButterKnife库的实现

@OnClick不能用于ButterKnife库的实现 当我点击Button ,没有任何事情发生。 这是我的完整代码: public class MainActivity extends ActionBarActivity { @InjectView(R.id.edit_user) EditText username; @InjectView(R.id.edit_pass) EditText password; @OnClick(R.id.btn) void submit() { // TODO call server… } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.inject(this); // TODO Use “injected” views… } } 这是我的xml: 谢谢

Butterknife为什么不能在匿名类中findViewHolder?

我有一个带有匿名BaseAdapter的ListView : final ListView myList = (ListView) getActivity().findViewById(R.id.my_list); myList.setAdapter(new BaseAdapter() { 在匿名类里面我有一个视图持有者: class ViewHolder { @InjectView(R.id.textField) TextView text; public ViewHolder(View view) { ButterKnife.inject(this, view); if (text == null) { text = (TextView)view.findViewById(R.id.textField); } } } 设置断点确认:Butterknife 总是将text字段保留为null ,但直接调用findViewById工作正常。 如果我将ViewHolder类移出匿名类,使其成为我的主类的成员,Butterknife工作正常。 有人可以解释原因吗?

像ButterKnife和Dagger这样的dependency injection框架会使应用程序变慢吗?

我即将开始一个相对较大的项目并且想知道 使用这些dependency injection框架的真正好处是什么? DI会增加应用加载时间吗? 或者提供任何性能价值? Googles文档反对使用Robojuice因为它的RAM使用,这是所有DI的共同点吗? 有兴趣听取每个人的意见。

是否可以使用Butterknife在android中的espresso Test clases中注入视图?

是否可以使用Butterknife注入测试类的视图? 视图被注入到由MainActivity类创建和提交的片段中。 这是我的测试类的代码: public class MainActivityTest extends ActivityInstrumentationTestCase2 { private MainActivity mMainActivity; private Button learnButton; private Button teachButton; @SuppressWarnings( “deprecation” ) public MainActivityTest() { super(“com.example.application.app”, MainActivity.class); } protected void setUp() throws Exception { super.setUp(); mMainActivity = getActivity(); learnButton = (Button) mMainActivity.findViewById(R.id.buttonLearn); teachButton = (Button) mMainActivity.findViewById(R.id.buttonTeach); } 但是我使用Butterknife在我的片段中注入视图: public class ChooseActionFragment extends Fragment { @InjectView(R.id.buttonTeach) Button […]

getSupportActionBar(toolbar)使用Butterknife工具栏抛出空指针exception

我正在使用Butterknife为工具栏注入视图。 但方法getSupportActionBar(toolbar)抛出空指针exception,不幸的是app停止了。 可以做些什么来解决这个问题? 我使用的是Android 4.2。 那么,使用Butterknife和Jellybean有什么问题吗? 主要活动 public class MainActivity extends AppCompatActivity { @BindView(R.id.tool_bar_demo) Toolbar toolbar; @BindDrawable(R.drawable.backspace) Drawable backspace_btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); setSupportActionBar(toolbar); toolbar.setTitle(“ABC”); } } activity_main gradle这个 minSdkVersion 15 targetSdkVersion 23 apply plugin: ‘com.neenbedankt.android-apt’ compile ‘com.android.support:design:23.4.0’ compile ‘com.jakewharton:butterknife:8.0.1’ apt ‘com.jakewharton:butterknife-compiler:8.0.1’ classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8’

格式化@BindView代码

Android Studio默认采用这种方式编写Butterknife代码: @BindView(R.id.text_view) TextView mTextView 有没有办法告诉Android Studio在一行中格式化代码,如下所示: @BindView(R.id.text_view) TextView mTextView 如果这是可能的,我希望此规则仅适用于@BindView注释。

使用Butter Knife库进行视图注入

我在做什么 :: 我正在尝试为我的简单项目运行黄油刀库 我已经按照文档中的所有步骤进行操作,但我仍然遇到日志错误 我怎么能解决这个问题,我错过了任何一步 我还在libs文件夹中添加了jar MainActivity.java package com.example.butterknife; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import butterknife.ButterKnife; import butterknife.InjectView; public class MainActivity extends Activity { @InjectView(R.id.txtID) TextView title; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.inject(this); title.setText(“Hello Everyone !!”); } } Log :: 04-15 11:50:57.845: E/AndroidRuntime(913): FATAL EXCEPTION: main 04-15 11:50:57.845: E/AndroidRuntime(913): java.lang.RuntimeException: Unable […]

无法使用Butterknife 8.1.0注入视图

我想在我的项目中使用Butterknife。 如上所述我在这里设置了Butterknife。 在项目级别模块中: buildscript { repositories { jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:2.0.0’ classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8’ // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } 在模块级别 apply plugin: ‘com.android.application’ apply plugin: ‘android-apt’ android { compileSdkVersion 23 buildToolsVersion “23.0.2” defaultConfig { applicationId “com.id.myprojectid” minSdkVersion 11 targetSdkVersion […]