gpt4 book ai didi

android - 在按钮/图像上单击切换抽屉导航 'open'

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:39 25 4
gpt4 key购买 nike

我创建了一个 fragment ,该 fragment 与包含一个 ImageView 的 XML Hook 。抽屉导航(使用 actionbar compat)在 activity_main.java 中设置并且工作正常。我想要做的是,当我点击 fragment 内的图像时,抽屉导航应该“切换打开”。

onCreateView 方法中的以下代码返回一个空指针:

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedinstanceState)
{

View view=inflater.inflate(R.layout.home, container, false);

ImageView img=(ImageView)view.findViewById(R.id.imageView1);

// Defined inside activity_main.xml
final LinearLayout mDrawer = (LinearLayout) view.findViewById(R.id.drawer);

// Defined inside activity_main.xml
final DrawerLayout mDrawerLayout = (DrawerLayout)view.findViewById(R.id.drawer_layout);

img.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

mDrawerLayout.openDrawer(mDrawer);

}
});

return view;
}

以下语句返回空指针:

mDrawerLayout.openDrawer(mDrawer);

最佳答案

这些行引用了错误的 View :

final LinearLayout mDrawer = (LinearLayout) view.findViewById(R.id.drawer); 
final DrawerLayout mDrawerLayout = (DrawerLayout)view.findViewById(R.id.drawer_layout);

他们正在“R.layout.home”中寻找抽屉,因为那是你膨胀并设置到 View 变量的东西,findViewById() 返回 null 因为它不在那里。

如果此 View 是 activity_main 的 subview ,那么您应该能够将它们更改为:

final LinearLayout mDrawer = (LinearLayout) getActivity().findViewById(R.id.drawer); 
final DrawerLayout mDrawerLayout = (DrawerLayout) getActivity().findViewById(R.id.drawer_layout);

此外,我会让这些类(class)成为成员,而不是最终的。

关于android - 在按钮/图像上单击切换抽屉导航 'open',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22341816/

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