gpt4 book ai didi

java - 在 fragment 而不是 main 中有按钮操作

转载 作者:行者123 更新时间:2023-11-29 03:44:34 25 4
gpt4 key购买 nike

我有一个 Android 应用程序,我在其中使用选项卡(使用 ActionBarSherlock)。所以我的主要 Activity 为我创建了选项卡,然后我从那里加载了 fragment 布局。

在我的 MainActivity.java 中,我创建了一个选项卡(这只是一个 fragment ):

mTabsAdapter = new TabsAdapter(this, mViewPager);

mTabsAdapter.addTab(
bar.newTab().setText("Fragment 1"),
MainMenuFragment.class, null);

我的 MainMenu.java 看起来像这样:

public class MainMenuFragment extends SherlockFragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.mainmenu_fragment, container, false);

return view;
}

public void showMainMenu(View view)
{
Log.e("app", "olol: button!"); // never called!!
}
}

这是mainmenu_fragment

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000" >

<Button
android:id="@+id/btnMenu"
android:layout_width="170dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="41dp"
android:text="@string/mainmenu"
android:onClick="showMainMenu" />
</RelativeLayout>

现在我所要做的就是将方法 showMainMenu(View view) 放在某个地方。我认为这会进入相应的 java 文件(在我的例子中是 MainMenuFragment.java)。但只有当我将方法放入 MainAvtivity.java 文件时它才有效。

这意味着来自各种 fragment 布局的所有按钮操作都将放在一个(主)java 文件中。为什么我不能简单地将它放在调用 Fragment 布局的 java 文件中......??

最佳答案

简短的回答是(就像已经指出的那样),你不能。

唯一的方法是创建一个 onClick 事件监听器。在 onCreate 方法中的 MainMenuFragment.java 中,执行如下操作:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.scan_fragment, container, false);

Button menuButton = (Button)view.findViewById(R.id.btnMenu);
menuButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.e("app", "onclick listener");
}
});

return view;
}

您可以从布局 xml 中删除 onClick 属性。

关于java - 在 fragment 而不是 main 中有按钮操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11607888/

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