如何在Intents之间发送字符串?

时间:2013-02-24 15:38:56

标签: android string android-intent

我需要帮助才能将字符串发送到另一个活动。

public class MainActivity extends Activity implements OnClickListener{

@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub
    Intent myInt = new Intent(this,Receiver.class);
    myInt.putExtra("key",Event);
    startActivity(myInt);
}

Button b;
EditText Edt;
String Event;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b=(Button)findViewById(R.id.button);
        b.setOnClickListener(this);
        Edt=(EditText)findViewById(R.id.EdtText);
        Event=new String(Edt.getText().toString());             
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

这就是我希望发送给此活动的字符串事件的意图

public class Receiver extends Activity {

TextView txtV;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.receiving);
    txtV=(TextView)findViewById(R.id.txtV);
    Bundle extras = getIntent().getExtras();
    if(extras !=null) {
        String value = extras.getString("key");
    }
    txtV.setText("key");
}
}

当我运行我的程序时,它只显示“key”但我想显示我在本活动中无法使用的String事件,尽管我在第一个intent中使用了putExtra方法。 请帮助我,我知道还有很多类似的问题,但我仍然没有得到它。

2 个答案:

答案 0 :(得分:5)

使用此:

    txtV.setText(value);

不是这个:

    txtV.setText("key");

答案 1 :(得分:0)

试试这个。我希望它会对你有所帮助。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    b=(Button)findViewById(R.id.button);
    b.setOnClickListener(this);
    Edt=(EditText)findViewById(R.id.EdtText);
    Event=new String(Edt.getText().toString()); //Remove this line   
}

@Override
public void onClick(View arg0) {
    Event = Edt.getText().toString();  //Write here
    Intent myInt = new Intent(this,Receiver.class);
    myInt.putExtra("key",Event);
    startActivity(myInt);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.receiving);
    txtV=(TextView)findViewById(R.id.txtV);
    Bundle extras = getIntent().getExtras();
    if(extras !=null) {
        String value = extras.getString("key"); //assign it.
        txtV.setText(value); //set it to textview.
    }
}