首页 > 解决方案 > 在 onCreate 中创建按钮时使用注释单击

问题描述

我想将 @Click Android Annotation 添加到未在 layout.xml 中定义的按钮,但在 onCreate 中创建并以编程方式添加到 SearchView:

@EActivity
public class NewRecipeActivity extends BaseActivity{

  @ViewById(R.id.buttonLoadExtra)
   Button buttonLoadExtra;

  @ViewById(R.id.listViewSearch)
   ListView listViewSearch;

   @Override
   protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_newrecipe);

    buttonLoadExtra =  new Button(this);
    buttonLoadExtra.setId(R.id.buttonLoadExtra);
    buttonLoadExtra.setText("Weitere Laden...");


    listViewSearch.addFooterView(buttonLoadExtra);
 } 
 @Click
  void buttonLoadExtra(){ //Do stuff }
  }

其中 id buttonLoadExtra 在资源文件中定义:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <item name="buttonLoadExtra" type="id" />
</resources>

但它不是这样工作的。这可能很明显,因为当链接到单击操作完成时,该按钮尚不存在。那么有没有办法解决这个问题,或者我可以将注释仅用于“现有按钮”。

先感谢您

标签: javaandroidonclickandroid-annotations

解决方案


不幸的@Click是,如果您稍后添加视图,注释将不起作用,因为 AndroidAnnotation 正在设置监听器setContentView(),并且您在运行之后添加视图。


推荐阅读