设置 onClickListeners 以编辑片段中的文本框
Setting onClickListeners to edit text box in fragment
我有一个 coFragment.xml 文件,其中包含一个 EditText 框和一些按钮。在我的 coFragment.java 文件中,我想将 onClickListeners 注册到按钮,以便在按下它们时,文本将添加到 EditText 框中。
我的 coFragment.java 文件目前有
public class CoFragment extends Fragment implements View.OnClickListener {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parentViewGroup,
Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.coFragment, parentViewGroup, false);
EditText input = (EditText) getView().findViewById(R.id.input_id);
Button oneButton = (Button) v.findViewById(R.id.one_button_id);
Button twoButton = (Button) v.findViewById(R.id.two_button_id);
Button threeButton = (Button) v.findViewById(R.id.three_button_id);
oneButton.setOnClickListener(this);
twoButton.setOnClickListener(this);
threeButton.setOnClickListener(this)
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.one_button_id:
input.append("1");
break;
case R.id.two_button_id:
input.append("2");
break;
case R.id.three_button_id:
input.append("3");
break;
}
显然,我目前无法在 onClick
方法中访问 input
EditText 对象。我怎样才能获得我想要的功能?
如果你想在onCreateView()
之外访问EditText
你需要在任何方法之外声明它并在onCreateView()
-
中初始化它
private EditText input;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parentViewGroup,
Bundle savedInstanceState) {
....
input = (EditText) v.findViewById(R.id.input_id);
....
}
现在您可以在片段中的任何地方使用 input
。
我有一个 coFragment.xml 文件,其中包含一个 EditText 框和一些按钮。在我的 coFragment.java 文件中,我想将 onClickListeners 注册到按钮,以便在按下它们时,文本将添加到 EditText 框中。
我的 coFragment.java 文件目前有
public class CoFragment extends Fragment implements View.OnClickListener {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parentViewGroup,
Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.coFragment, parentViewGroup, false);
EditText input = (EditText) getView().findViewById(R.id.input_id);
Button oneButton = (Button) v.findViewById(R.id.one_button_id);
Button twoButton = (Button) v.findViewById(R.id.two_button_id);
Button threeButton = (Button) v.findViewById(R.id.three_button_id);
oneButton.setOnClickListener(this);
twoButton.setOnClickListener(this);
threeButton.setOnClickListener(this)
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.one_button_id:
input.append("1");
break;
case R.id.two_button_id:
input.append("2");
break;
case R.id.three_button_id:
input.append("3");
break;
}
显然,我目前无法在 onClick
方法中访问 input
EditText 对象。我怎样才能获得我想要的功能?
如果你想在onCreateView()
之外访问EditText
你需要在任何方法之外声明它并在onCreateView()
-
private EditText input;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parentViewGroup,
Bundle savedInstanceState) {
....
input = (EditText) v.findViewById(R.id.input_id);
....
}
现在您可以在片段中的任何地方使用 input
。