2013-07-06 34 views
0

我试图将一个字符串和一些整数传递给另一个活动。问题是整数可以成功传递,但不是字符串值。我在论坛上搜索类似的问题,但我无法找到我的问题。使用字符串传递意图的数据返回null

主要活动类:

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"); 
} 

我有一个文本框,它的作用就是显示的一些数据,而参数如布阿岛率,数据位,停止位和奇偶校验有数据,端口始终返回空值。

但是,端口不能为null才能开始活动。

+0

什么数据类型是“端口”? –

回答

1

改变这一行

port = getIntent().getStringExtra(port); 

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

哦,上帝,为什么我没有注意到这一点,感谢您的帮助! – user1157751

1

您忘记传递正确的钥匙在你NewActivityClass,我有一个提示为您服务!

总是将公共常量定义在应用程序的某个位置。 (我通常创建MyConstants.Java用于这一目的。这是你可以肯定的是要传递正确的钥匙,既发送类和接收类的唯一途径

感谢。

相关问题