我创建了一个片段,想要检测按下按钮的时间。当我调用findViewById时,我收到错误消息,说无法解析methed。
我假设这是因为片段类中不存在此方法。
如何检测单击片段内的按钮的时间。?
我的测试代码:
public class TestFragment extends Fragment implements View.OnClickListener {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_test, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
// Setup any handles to view objects here
// EditText etFoo = (EditText) view.findViewById(R.id.etFoo);
View mCall = findViewById(R.id.button);
mCall.setOnClickListener(this);
}
public void onClick(View v) {
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
<fragment
android:name="com.example.tedpo.testfragment.TestFragment"
android:id="@+id/fooFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
答案 0 :(得分:0)
使用:强>
View mCall = view.findViewById(R.id.button);
您必须在参数中的当前findViewById
参数中Button
View view
。
答案 1 :(得分:0)
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view= inflater.inflate(R.layout.fragment_test, container, false);
Button button=view.findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//DO SOMETHING! {RUN SOME FUNCTION ... DO CHECKS... ETC}
}
});
return view;
}
findViewById不会工作,因为它不知道必须搜索哪个布局文件项。
使用view.findViewById
代替findViewById
。view.findViewById
会在R.layout.fragment_test
找到项目