完成类并从类完成到主类的int

时间:2012-05-09 08:04:13

标签: java android android-intent

我有一个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.我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

  1. 您需要使用Activity.startActivityForResult()
  2. 调用弹出式活动
  3. 完成弹出式活动后,通过Activity.setResult()设置请求的结果(您可以将数据保存在意图包中)
  4. 在您的主活动中,覆盖onActivityResult并检索数据

答案 1 :(得分:0)

它叫做startActivityforResult 并且已经在stackoverflow上回答了很多次这里是one