可能是我在问一些奇怪的东西,但我想知道,我的字符串保存在java中。我使用了hashCode()
String ext = getIntent().getStringExtra("title_");
int path = ext.hashCode();
Log.e("path", ""+path);
我得到了哈希码。所以这是我的字符串的唯一地址,或者还有其他方法,以获取字符串的位置。
更新
实际上我正在两个活动之间转移字符串。而且每次我都得到相同的字符串。 即使我更改了值,我也得到了相同的字符串 我已经转移了第一次。
活动一
Intent notificationIntent = new Intent(GCMIntentService.this, MainActivity.class);
notificationIntent.putExtra ("title_",message);
活动二
String ext = getIntent().getStringExtra("title_");
Log.e("path", ext);
答案 0 :(得分:0)
首先使用它:
Intent i=new Intent(context,SendMessage.class);
i.putExtra("test", "This is a test");
context.startActivity(i);
然后在另一个活动中,使用getIntent()方法获取已经开始活动的意图:
Intent intent = getIntent();
如果您的额外数据表示为字符串,则可以使用intent.getStringExtra(String name)方法。在这个测试中:
String test = intent.getStringExtra("test");
在你的情况下试试:
一:
Intent notificationIntent = new Intent(context,SendMessage.class);
notificationIntent.putExtra ("title_",message);
context.startActivity(notificationIntent);
二:
Intent intent = getIntent();
String ext = intent.getStringExtra("title_");
Log.e("path", ext);
答案 1 :(得分:0)
首先,对象的hashCode
绝对与其地址无关。
其次,地址并不是你应该用Java来处理的事情。
Java 确实有指针。所有非原始字段都是“指针”(引用类型),并且可以将它们相互比较:
string1 == string2
这实际上会比较两个字符串的“地址”。
正如JLS所说,in 15.21.3:
在运行时,如果操作数值都为null或者两者都引用相同的对象或数组,则==的结果为true;否则,结果是错误的。
此外:
虽然==可用于比较String类型的引用,但这样的相等性测试确定两个操作数是否引用相同的String对象。如果操作数是不同的String对象,则结果为false,即使它们包含相同的字符序列(§3.10.5)。