我在片段中有一个按钮,对于该按钮,我重写了 onClick() 方法,但它不起作用。
单击按钮时,我也有一个 Taost 和一个日志。
public class DataShown extends Fragment implements OnClickListener{
Button tv;
TextView textview;
Activity activity=getActivity();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d("3", "started");
View rootView = inflater.inflate(R.layout.datashown, container, false);
Log.d("3", "closed");
textview=(TextView) rootView.findViewById(R.id.textView1);
tv = (Button) rootView.findViewById(R.id.configButton);
tv.setOnClickListener((OnClickListener) activity);
return rootView;
}//onCtreate
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Log.d("onClick","1");
Toast.makeText(activity, "on click", Toast.LENGTH_SHORT).show();
}
}
我不知道为什么会发生这种情况,可能是它愚蠢的错误。
现在,吐司显示错误,接受上下文对象,因此我提供了活动,但不起作用。
Change
tv.setOnClickListener((OnClickListener) activity);
to
tv.setOnClickListener(this);
and in onClick
方法改变
Toast.makeText(activity, "on click", Toast.LENGTH_SHORT).show();
to
Toast.makeText(getActivity(), "on click", Toast.LENGTH_SHORT).show();
并删除
Activity activity=getActivity();
因为您确实在片段附加到活动之前启动了它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)