无法从Bundle中检索数据

时间:2015-01-17 15:09:15

标签: android

我正在尝试检索我添加到捆绑包中的一些数据,但我无法使用正常的方式对其进行检索。

我当前的代码是

Intent i = getIntent();
Bundle bundle = i.getExtras();    
for (String key : bundle.keySet()) {
                    Object value = "start_color";
                    start_color = String.format("%s", key);                
                }

这会获取包值,但是当我使用像这样的标准代码时

Intent i = getIntent();
Bundle bundle = i.getExtras();
  if (bundle != null) 
   {
     String value = bundle.getString("start_color");
   }

无法获得捆绑值我很困惑为什么会发生这种情况!有人可以告诉我为什么会这样吗?

这是我将值放入Bundle

的代码
String rgbString = "R: " + Color.red(color) + " B: " + Color.blue(color) + " G: " + Color.green(color);

                //Change activity send data
                Intent device = new Intent(v.getContext(), Create_Preset.class);
                device.putExtra(rgbString,"start_color");
                startActivity(device);
                overridePendingTransition(R.anim.left_in, R.anim.left_out);

我甚至通过REST API使用更改的代码将新行添加到我的预设表中,以便那些想知道捆绑包是否具有任何值,是的!是的!

以下是我存储值的数据库上的选择,请参阅start_colorend_color这些是我从包中获取的值

Host: localhost
Database: led
Generation Time: Jan 17, 2015 at 04:37 PM
Generated by: phpMyAdmin 4.2.7.1 / MySQL 5.6.20
SQL query: SELECT * FROM `preset` WHERE 1 LIMIT 0, 25 ;
Rows: 2
Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.
preset    starttime_hour  starttime_min   endtime_hour    endtime_min     startColor  endColor
test  12  0   12  0   R: 159 B: 159 G: 159    R: 159 B: 159 G: 159
test2     12  0   12  0   R: 39 B: 122 G: 91  R: 39 B: 122 G: 91

2 个答案:

答案 0 :(得分:1)

您将值添加为键,将键添加为值。

正确: Intent.putExtra(键,值)

你有什么: device.putExtra(rgbString,“start_color”);

答案 1 :(得分:-1)

您需要使用Iterator接口从键集中获取值,因为bundle.keySet返回一组字符串。 例如

Set<String> keys = bundle.keySet();
Iterator<String> itr = keys.iterator();
while(itr.hasNext()) {
                String key = itr.next();
                String value = bundle.get(key);
}