Watcher textEdit with Fragment - 没有工作

时间:2015-07-23 00:12:13

标签: android android-layout android-fragments android-fragmentactivity textwatcher

我正在做一个应用来做一些数学,所以在这个测试中我可以写一个值,应用程序自动将它转换为另一个单位,反之亦然,所以使用2个textEdits我在任何一个中写一个数字其中另一个获得转换的价值。只有此代码才能在分离的应用中完美运行。 现在我在这个链接中找到了: https://github.com/JulienGenoud/android-percent-support-lib-sample 一个漂亮的布局,左边是滑动菜单,它关于percentLayout,但实际上我不需要它,我只是喜欢那个布局:)

嗯,在不同的应用程序中,代码运行良好,但是当我尝试将代码与Watcher放在这个新的laoyt中时,它会起作用; 我只是将我的布局值放在view1.xls中,然后创建一个view_1.java,包含所有必需的代码;

我应该添加一些东西让观察者在片段中工作吗?

view_1.java

public class view_1 extends Activity {

    double CVtokWfactor_2 = 0.7354988;
    boolean doNotEnterEd1 = false;
    boolean doNotEnterEd2 = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view1);

        final EditText ed1_2 = (EditText) findViewById(R.id.editText02_1);
        final EditText ed2_2 = (EditText) findViewById(R.id.editText02_2);


        ed1_2.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {

                if (doNotEnterEd1 == true) {
                    return;
                }
                doNotEnterEd1 = true;

                try {
                    if (ed1_2.getText().toString().equals("")) {
                        ed2_2.setText("");
                    } else {
                        ed2_2.setText(String.format("%.3f", (Double.parseDouble(ed1_2.getText().toString()) * CVtokWfactor_2)));
                    }

                } catch (NumberFormatException e) {
                }
                doNotEnterEd2 = false;

            }
        });

        ed2_2.addTextChangedListener(new TextWatcher() {

            @Override
            public void afterTextChanged(Editable arg0) {

                if (doNotEnterEd2 == true) {
                    return;
                }

                doNotEnterEd1 = true;
                try {
                    if (ed2_2.getText().toString().equals("")) {
                        ed1_2.setText("");
                    } else {
                        ed1_2.setText(String.format("%.3f", (Double.parseDouble(ed2_2.getText().toString()) * CVtokWfactor_2)));    //Here do the conversion as you like, replace CVtokWfactor.
                    }

                } catch (NumberFormatException e) {
                }

                doNotEnterEd1 = false;
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }
        });


    }


}

和view1.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.juliengenoud.percentsamples.view_1">


    <EditText
        android:id="@+id/editText02_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50sp"
        android:gravity="center"
        android:hint="Potência CV"
        android:inputType="numberDecimal"
        android:textSize="30sp" />

    <EditText
        android:id="@+id/editText02_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText02_1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50sp"
        android:gravity="center"
        android:hint="Potência kW"
        android:inputType="numberDecimal"
        android:textSize="30sp" />


</RelativeLayout>

您认为我会怎么做才能让它发挥作用?如果你们有任何类似参考的链接,请告诉我。

非常感谢! 巴拉塔

0 个答案:

没有答案