gpt4 book ai didi

java - Android 调用带有 onClick 错误的 fragment 方法

转载 作者:行者123 更新时间:2023-11-29 03:02:51 24 4
gpt4 key购买 nike

我正在将一组 custom_rowsbaseadapter 填充到我的 listview 中。我在我的 fragment 中设置了 ListView 。我正在尝试将 android:onClick="openComment 设置为我的 custom_row.xml 中的按钮,但出现以下错误

java.lang.IllegalStateException: Could not find method openComment(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatImageView with id 'open'

在我的 fragment 中,我有方法 openComment。我如何从单击按钮调用方法。这是 fragment 显示我如何调用该方法。

public class Home extends android.support.v4.app.Fragment implements View.OnClickListener {
....
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
myview = inflater.inflate(R.layout.home, container,false);
listView = (ListView) myview.findViewById(R.id.activity_main);
return myview;
}
....
....
public void openComment(View v)
{
//getting the position of clicked row
final int position = listView.getPositionForView((View) v.getParent());
System.out,print("button clicked");
}

我的 custom_row.xml 看起来像这样。它有一个 TextView 和一个按钮

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<Button
android:id="@+id/open"
android:onClick="openComment"
android:layout_width="45dp"
android:layout_height="45dp"/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>

下面是我的 ListView activity_main.xml

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<ListView
android:id="@+id/custom_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</ListView>

最佳答案

实际上,您必须在宿主 activity 而不是 fragment 中声明您的 openComment(View v) 函数。您可以在 activity 中声明该函数,如下所示:

public void openComment(View v){
yourFragment.openComment(v);
}

但是,我认为这样解决不是一个好主意。您应该在适配器或 fragment 中实现 onClickListener

关于java - Android 调用带有 onClick 错误的 fragment 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33751932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com