我创建了一个方法,我将链接到Button
上的Fragment
。
出于某种原因,当我将方法放在Fragment
中并转到片段的布局文件时,单击属性上的按钮似乎无法识别该方法。当我在主Activity
中放置相同的方法时,它似乎很好地识别了该方法,但我希望在我的Fragment
中存在此方法。
有人知道如何解决这个问题,同时我的Fragment
中仍然存在这种方法吗?
public void onClicFragment(View v)
{
}
答案 0 :(得分:1)
如果您的Button
位于Fragment
,则只需向其中添加OnClickListener
(例如onCreateView()
中):
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.some_layout, parent, false);
Button button = (Button) view.findViewById(R.id.some_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ...
}
});
return view;
}
否则,您可以在Activity
中定义onClick方法,并从那里调用Fragment
的相应方法:
public class MainActivity extends AppCompatActivity {
// ...
public void onClickFragment(View v) {
SomeFragment f = (SomeFragment) getFragmentManager().findFragmentByTag("SOME_TAG");
if (f != null) {
f.someMethod();
}
}
}