我正在使用Android Studio(最低API为15 )进行主要活动的布局,并在其上定义了一些XML按钮。
该程序的想法是通过添加,显示和清除一组按钮来编辑单词列表。 (有一个EditText用于添加,但这对于问题并不重要)。但是考虑到高内聚的想法,我已经定义了这个列表以及在另一个普通类中操作它的方法,这个类称为WordList(仍然扩展了Activity ),所以当试图调用按钮的onClick属性时,它找不到它们。
android:onClick="addWord"
'MainActivity'中缺少方法'addWord'或签名错误...
有没有办法从另一个类制作布局或单个元素点(或获取其数据上下文),或者是针对整个Android结构的那个,我应该把它放进去在原来的活动中?
答案 0 :(得分:12)
您是否使用该方法的正确签名?
使用onClick
属性定义的方法必须满足以下要求:
喜欢
public void addWord(View view) {
//your action
}
答案 1 :(得分:4)
向按钮添加OnClickListener,而不是使用XML onClick属性。
答案 2 :(得分:0)
试试这个,它应该有效:
Button btn = (Button) findViewById(R.id.mybutton);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addWord(v);
}
});
// some more code
public void addWord(View v) {
// does something very interesting
}
XML实施
<?xml version="1.0" encoding="utf-8"?>
<!-- layout elements -->
<Button android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me!"
android:onClick="addWord" />
<!-- even more layout elements -->