这是一个2部分问题。 Firstable,我有EditText
严格设置,用户只能按android:inputType="number"
放置数字。像:
<EditText
android:id="@+id/edit_A1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:imeOptions="actionDone"
android:inputType="number"
android:hint="@string/zeroes" />
<TextView
android:id="@+id/act1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/act_string"
android:layout_centerVertical="true"
android:hint="000," />
我从中得到什么样的输出?这是正常的String
还是Integer
?
其次,我想以这种方式设置TextView
(上面的代码),当我将数字输入到EditText
并从显示的小键盘中点击OK
按钮时,数字将立即显示在TextView
中。 EditText
和TextView
都属于同一活动。我有以下代码:
public static class MainSectionFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.main, container, false);
EditText mAcu1ET = (EditText) rootView.findViewById(R.id.edit_A1);
TextView mAcu1TV = (TextView) rootView.findViewById(R.id.act1);
//????
return rootView;
}
}
创建视图。我应该实施哪种onClickListener
,以便我的TextView
会更改OK
按钮点击EditText
小键盘的值?还在学习,对我很轻松。
主题的标题可能令人困惑,抱歉!
答案 0 :(得分:0)
让我看看如果我得到它,你想写一个数字,按OK并在两个字段中看到这个数字?
答案 1 :(得分:0)
编辑文本将始终为您提供字符串,但您可以键入将其转换为数字。
mAcu1ET.getText().toString();
代码:
public static class MainSectionFragment extends Fragment {
EditText mAcu1ET;
TextView mAcu1TV;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.main, container, false);
mAcu1ET = (EditText) rootView.findViewById(R.id.edit_A1);
mAcu1TV = (TextView) rootView.findViewById(R.id.act1);
mAcu1ET.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
// TODO Auto-generated method stub
if(arg1==KeyEvent.KEYCODE_NUMPAD_ENTER){
mAcu1ET.setText(mAcu1TV.getText().toString());
}
return false;
}
});
return rootView;
}
}
答案 2 :(得分:0)
点击按钮:
String set = youreditText.getText().toString();
yourtextView.setText(set);
EditText,即使inputType
的编号,也只会为您提供数字的键盘配置。您始终需要getText().toString()
才能获得输入。
答案 3 :(得分:0)
您可以使用OnKeyListener
http://developer.android.com/reference/android/view/View.OnKeyListener.html
mAcu1ETt.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {
/* do something */
}
}
});
答案 4 :(得分:0)
不幸的是,上述解决方案都没有奏效。我在这里找到了解决方案:catching the "OK" button vs pressing "round-arrow" on EditText in Android
总而言之,我的代码看起来像这样:
public static class MainSectionFragment extends Fragment {
private EditText mAcu1ET;
private TextView mAcu1TV;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.main, container, false);
mAcu1ET = (EditText) rootView.findViewById(R.id.edit_A1);
mAcu1TV = (TextView) rootView.findViewById(R.id.act1);
mAcu1ET.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction( TextView v, int actionId, KeyEvent event ) {
mAcu1TV.setText(mAcu1ET.getText().toString());
return false;
}
});
return rootView;
}
}
感谢您的贡献! Raghandunan以某种方式引导我,感谢:))