动态值从同一个Activity中的数字EditText传递到String

时间:2014-01-08 17:28:22

标签: java android android-layout

这是一个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中。 EditTextTextView都属于同一活动。我有以下代码:

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小键盘的值?还在学习,对我很轻松。

主题的标题可能令人困惑,抱歉!

5 个答案:

答案 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以某种方式引导我,感谢:))