繁体   English   中英

在活动之间传递字符串未收到字符串

[英]String not received by passing string between activities

我在两个Activities之间发送一个String 这是我的发送字符串的class代码。

 public class SetData extends Activity implements OnClickListener{

EditText et;
Button bConfirm;
TextView tv;
String bread;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.data_input);
    initiate();
    bConfirm.setOnClickListener(this);
}

private void initiate() {
    // TODO Auto-generated method stub
    et = (EditText) findViewById(R.id.ET);
    bConfirm = (Button) findViewById(R.id.button1);
    tv = (TextView) findViewById(R.id.TV);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    bread = et.getText().toString();
    Bundle basket = new Bundle();
    basket.getString("key", bread);
    Intent stringSend = new Intent(SetData.this, PrintData.class);
    stringSend.putExtras(basket);
    startActivity(stringSend);
} }

此活动正在按预期开始另一个活动。 另一个活动是课程:

public class PrintData extends Activity implements OnClickListener{

EditText tv;
RadioGroup RG;
Button print;
String newstring = "No content received.";
Bundle gotBasket;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.data_output);
    initiate();
    Intent oldintent = getIntent();
    gotBasket = oldintent.getExtras();
    newstring = gotBasket.getString("key");
    tv.setText(newstring);
    //print.setOnClickListener(this);
}

private void initiate() {
    // TODO Auto-generated method stub
    tv = (EditText) findViewById(R.id.TV);
    print = (Button) findViewById(R.id.print);
    RG = (RadioGroup) findViewById(R.id.radioGroup);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

} }

字符串newstring的默认值为“没有收到内容”。 新的活动打开时,将显示以上文本。 这意味着该字符串是由Activity1(SetData)发送的,但不是由Activity2(PrintData)接收的。

这可能是什么原因? 我该如何纠正?

您应该在第一个活动中执行basket.putString() ,而不是getString()

在您的第一个活动中,您正在做basket.getString("key", bread); 要使用包发送数据,您应该使用basket.putString("key", bread);

在您的第一个活动中,您正在做basket.putString(“ key”,面包);

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    bread = et.getText().toString();
    Bundle basket = new Bundle();
    basket.putString("key", bread);
    Intent stringSend = new Intent(SetData.this, PrintData.class);
    stringSend.putExtras(basket);
    startActivity(stringSend);
} 

或第一个活动:

stringSend.putExtra("key", bread)

二次活动:获取价值

newstring=getIntent().getExtras().getString("key");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM