使用字符串传递意图的数据返回null

时间:2013-07-06 02:07:49

标签: android

我正在尝试将字符串和一些整数传递给另一个活动。问题是整数可以成功传递,但不能传递字符串值。我在论坛上搜索了类似的问题,但我找不到我的问题。

主要活动类:

    public void onClick(View v)
    {
        Intent debug = new Intent("bluetooth_4.pack.USBDebugMode");

        if((port != null))
        {
            debug.putExtra("port", port.toString());
            debug.putExtra("buadRate", buadRate);
            debug.putExtra("dataBits", dataBits);
            debug.putExtra("stopBits", stopBits);
            debug.putExtra("parity", parity);

            startActivity(debug);

            Toast.makeText(MainActivity.this, "Switching to USB Debug Mode" , Toast.LENGTH_SHORT).show();
        }
        else
        {
            Toast.makeText(MainActivity.this, "You haven't selected a device yet!" , Toast.LENGTH_SHORT).show();
        }
    }

新活动类:

protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.usb_debug_main);

    Button button1 = (Button) findViewById(R.id.button1);
    Button button2 = (Button) findViewById(R.id.button2);

    button1.setOnClickListener(myButtonListener1);
    button2.setOnClickListener(myButtonListener2);

    ActionBar actionBar = getActionBar();
    actionBar.hide();

    port = getIntent().getStringExtra(port);
    buadRate = getIntent().getIntExtra("buadRate", 0);
    dataBits = getIntent().getIntExtra("dataBits", 0);
    stopBits = getIntent().getIntExtra("stopBits", 0);
    parity = getIntent().getDoubleExtra("parity", 0);

    mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);

    TextView text = (TextView) findViewById(R.id.textView2);

    text.append("Port: " + port + "\r\n");
    text.append("Buad Rate: " + buadRate + "\r\n");
    text.append("Data Bits: " + dataBits + "\r\n");
    text.append("Stop Bits: " + stopBits + "\r\n");
    text.append("Parity: " + parity + "\r\n");
}

我有一个文本框,它只是显示一些数据,而buad率,数据位,停止位和奇偶校验等参数都有数据,端口总是返回null。

但是,为了启动活动,port不能为null。

2 个答案:

答案 0 :(得分:1)

更改此行

 port = getIntent().getStringExtra(port);

port = getIntent().getStringExtra("port");

答案 1 :(得分:1)

您忘记在NewActivityClass传递正确的密钥,我有一个提示给您!

始终在应用中的某些位置定义公共常量。 (我通常会为此创建 MyConstants.Java 。这是您可以确保在发送类和传递类中传递正确密钥的唯一方法。接收课程

感谢。