我有一个 MainClass,其中一个是完整的应用程序,当我单击一个按钮时,我会转到另一个类(PopupValores),我让它看起来像一个弹出窗口。在此类中,我有一个 EditText,您可以在其中键入一个整数和一个按钮来关闭此类。我的问题是如何在 PopupClass 中输入该 int 并在 MainClass 中使用它。这是 PopupValores 的代码。
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class PopupValores extends Activity implements OnClickListener {
TextView texto;
String mensaje;
EditText editable;
Button ok;
public static int cantidad;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popupvalores);
ok = (Button) findViewById (R.id.Bok);
texto = (TextView) findViewById (R.id.textView1);
editable = (EditText) findViewById (R.id.editText1);
mensaje = editable.getText().toString();
ok.setOnClickListener(this);
ok.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View arg0) {
finish();
return true;
}
});
}
public void onClick(View v){
switch(v.getId()){
case R.id.Bok:
String mensaje;
mensaje = editable.getText().toString();
cantidad = Integer.parseInt(mensaje);
texto.setText("New value " + cantidad + ".");
}
}
}
然后在我的 MainClass 中单击一个按钮,它会显示 int
int id, vaas = PopupValores.cantidad;
public void onClick (View v)
{
posicion = (ImageCell) v;
seleccion = posicion.mCellNumber;
if (seleccion == -1){
....
toast (id + " " + vaas);
....
}
}
但是它没有显示 PopupValores 中声明的值,而是显示 0。我在这里做错了什么?
最佳答案
- 您需要使用
Activity.startActivityForResult()
调用弹出 Activity - 完成弹出 Activity 后,通过
Activity.setResult()
设置请求的结果(您可以将数据保存在 Intent 包中) - 在您的主 Activity 中,重写
onActivityResult
并检索数据
关于java - 完成类(class)并从已完成类(class)到主类(class)获取 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10512124/