我试图通过点击按钮删除布局。
我在MainActivity.java文件中有这个方法:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_removeView"
android:onClick="goBack" />
在我要删除的视图中单击此按钮时会触发它:
dsend(to, from, count)
char *to, *from;
int count;
{
int n;
for(n=0; n!=count/8; n+=8){
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
}
for(; n!=count; n++)
{
*to = *from++;
}
}
但它给了我这样的信息:
java.lang.IllegalStateException:找不到方法goBack(View) android的一个父或祖先上下文:onClick
但是MainActivity是我所有方法的主要文件,所以我不确定为什么它找不到它。
我应该把它放在哪里才能找到它?
谢谢!
答案 0 :(得分:1)
要避免此类问题,请从布局中删除onClick,而不是以编程方式添加OnClickListener
。
首先将id添加到元素
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_removeView"
android:id="@+id/button"
/>
第二个添加监听器
getView().findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//here Your code
}
});
如果使用片段最佳位置将是onCreateView
方法:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_layout, container, false);
v.findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//here Your code
}
});
return v;
}
您还可以将片段设置为侦听器,如:
v.findViewById(R.id.button).setOnClickListener(this);
在这种情况下,fragement必须实现OnClickListener
接口。
答案 1 :(得分:1)
使用parent.removeViewAt(0)其中'0'是孩子的索引。它删除了特定索引处的视图。