gpt4 book ai didi

java - 在 android 上为 fragment 实现 OnClickListener

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

我有一个滑动菜单项目,在主页布局中,另一个布局称为 fragment :

这是 HomeFragment.java :

package info.androidhive.slidingmenu;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class HomeFragment extends Fragment {

public HomeFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.fragment_home, container, false);

return rootView;
}
}

我需要在我的 java 类中导入这个点击监听器以提交表单。

//CheckFal:
btnCheckFalAction = (Button) findViewById(R.id.btnCheckFal);
btnCheckFalAction.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v)
{
Toast.makeText(this, "Hello World", Toast.LENGTH_LONG).show();
}
}

但是当我添加上面的代码 fragment 时,它会在未定义的方法(例如 findViewById 、 OnClickListener 、 onClick )上引发错误

按钮在这个布局 fragment_home.xml 中

  <Button
android:id="@+id/btnCheckFal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/relativeLayout1"
android:layout_centerHorizontal="true"
android:layout_marginTop="19dp"
android:text="@string/CheckFal" />

最佳答案

在使用 Fragment 时,您必须膨胀 View 。

所以当你想使用任何小部件时,你必须使用带有 findViewById() 的 View 对象。

像这样...

public class HomeFragment extends Fragment {

public HomeFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.fragment_home, container, false);

btnCheckFalAction = (Button) rootView.findViewById(R.id.btnCheckFal); // you have to use rootview object..
btnCheckFalAction.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v)
{
Toast.makeText(getActivity(), "Hello World", Toast.LENGTH_LONG).show();
}
});

return rootView;
}
}

或者尝试其他方式..

public class HomeFragment extends Fragment implements OnClickListener{

public HomeFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.fragment_home, container, false);

btnCheckFalAction = (Button) rootView.findViewById(R.id.btnCheckFal); // you have to use rootview object..
btnCheckFalAction.setOnClickListener(this);

return rootView;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){

case R.id.btnCheckFal :
//your code...
break;

default:
break;

}

}
}

关于java - 在 android 上为 fragment 实现 OnClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27728439/

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