gpt4 book ai didi

java - 将弹出窗口中的 EditText 设置为等于先前 Activity 的字符串 - 错误 :(92, 30) 错误:不兼容的类型: double 无法转换为字符串

转载 作者:行者123 更新时间:2023-12-01 11:22:25 25 4
gpt4 key购买 nike

所以我正在制作这个针织计算器应用程序。基于几个输入,应用程序在弹出窗口中输出结果。这是代码

public class Rectangular extends Activity {

EditText length;
EditText width;
EditText edge;
EditText roll;
TextView tt;
Button calculate;
double w=0;
double x=0;
double y=0;
double z=0;
double v=0;


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



public void onClick(View arg0) {
final Button btnOpenPopup = (Button)findViewById(R.id.button8);
LayoutInflater layoutInflater
= (LayoutInflater)getBaseContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.pop_up, null);
final PopupWindow popupWindow = new PopupWindow(
popupView,
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT);
popupWindow.showAtLocation(popupView, Gravity.CENTER, 0, 0);


Button btnDismiss = (Button)popupView.findViewById(R.id.button9);
btnDismiss.setOnClickListener(new Button.OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
popupWindow.dismiss();
}});

popupWindow.showAsDropDown(btnOpenPopup, 50, -30);

};





private void initControls()
{
length=(EditText)findViewById(R.id.editText);
width=(EditText)findViewById(R.id.editText2);
edge=(EditText)findViewById(R.id.editText3);
roll=(EditText)findViewById(R.id.editText4);
tt=(TextView)findViewById(R.id.editText6);
calculate=(Button)findViewById(R.id.button8);
calculate.setOnClickListener(new Button.OnClickListener()
{public void onClick
(View v) { calculate();}});
}

EditText input;
EditText output;
Button one;


private void calculate()
{
w=Double.parseDouble(length.getText().toString());
x=Double.parseDouble(width.getText().toString());
y=Double.parseDouble(edge.getText().toString());
v=Double.parseDouble(roll.getText().toString());
z=((x+y+y)*(y+y+w))/v;
tt.setText(Double.toString(z));
}

xml(弹出窗口):

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="1"
android:background="@android:color/darker_gray">

<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="0.4" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/editText6" />

<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="0.15" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/notice"
android:id="@+id/textView7"
android:textSize="18sp" />

<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="0.05" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dones"
android:id="@+id/button9"
android:layout_gravity="right" />

</LinearLayout>

现在,我遇到的问题是我似乎无法将弹出窗口中的编辑文本设置为等于计算,我希望有人可以帮助我或指出正确的方向

更新:所以我让 editText 显示字母 Z 但我希望它显示结果,但是当我这样做时,我得到了 double 无法在第一行转换为字符串的异常

private String result = (z);
private void calculate()
{
w=Double.parseDouble(length.getText().toString());
x=Double.parseDouble(width.getText().toString());
y=Double.parseDouble(edge.getText().toString());
v=Double.parseDouble(roll.getText().toString());
z=((x+y+y)*(y+y+w))/v;
result = Double.toString(z);
}

知道该怎么做吗?

最佳答案

由于 EditText 位于弹出布局中,因此您必须通过膨胀的弹出 View 找到它。

EditText tt = (EditText) popupView.findViewById(R.id.editText6);

并在弹出弹出窗口的同时填充您的EditText:

tt.setText(Double.toString(z));

关于java - 将弹出窗口中的 EditText 设置为等于先前 Activity 的字符串 - 错误 :(92, 30) 错误:不兼容的类型: double 无法转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31078793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com