我正在做一个应用来做一些数学,所以在这个测试中我可以写一个值,应用程序自动将它转换为另一个单位,反之亦然,所以使用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>
您认为我会怎么做才能让它发挥作用?如果你们有任何类似参考的链接,请告诉我。
非常感谢! 巴拉塔