俺是新人……最近才刚开始学android……
最近在研究关于对象传值那个putEtra函数……
发现value的地方如果用“”引住就能传,写上string.xml里有定义的地址就传不到另一个Activity里了?这是为什么呢?例如:
intent.putExtra("one", "1");
这样就可以显示1
如果是
intent.putExtra("one", R.string.two);
在string里面定义了two的值
就无法显示定义的内容了……另一个Activity取出Etra的语句如下
Intent fromFirst = getIntent();
String onestr = fromFirst.getStringExtra("one");
text2 = (TextView)findViewById(R.id.text2);
text2.setText(onestr);

解决方案 »

  1.   

    R.string.two 这是一个整型数,你后面取得时候可没有把它当整型,在
    text2.setText(onestr);这里接收时整型已经不是整型了。只有整型是系统才会去查找,字符是不翻译的。
      

  2.   

    o_o原来如此~~那为什么我把取出来的值弄回整型还是不行的?= =||
    就是setText()不把它当做地址了?
      

  3.   

    表示不明白楼主在三楼的意思……
    如果楼主想直接取出R.string.two对应的字符串值,可以考虑用getResources().getText(R.string.two).toString();
      

  4.   

    intent.putExtra("one", "1");
    这样就可以显示1
    ->估计你的putExtra是putExtra(String,String);所以你写intent.putExtra("one", R.string.two);时类型就没有匹配;应该是这样;
      

  5.   

    谢谢楼上各位的解答啦!
    其实我实在做实验,尝试着各种用intent传值的方式,
    这个bug是我想用intent将一段文字从Activity01传到Activity02,然后在Activity02的TextView中显示出来时遇到的……
    其实直接在Activity02里用R.string.two就可以直接显示了……但是我想尝试一下上面那个方法行不行……不过貌似不行啊= =
    如果intent传过来的是地址,那么在Activity02中有没有什么方法可以通过传过来的地址找到string.xml中的字符串然后显示出来的呢?
      

  6.   


    请问你说的那个方法什么时候用啊?在setText的()里吗?
      

  7.   

    intent.putExtra("one", getResources().getText(R.string.two).toString());